我想知道是否有一种方法可以让下面的代码工作,或者我必须创建一个固定大小的函数的新副本?如果是这样,我怎么能有一个固定大小的通用功能。
void prettyPrintMatrix_float(float **matrix, int rows, int cols){
int i, j;
for (i = 0; i<rows; i++){
for (j = 0; j<cols; j++){
printf("%10.3f", matrix[i][j]);
}
printf("\n");
}
return;
}
float ppArray[4][10] = {0.0f};
prettyPrintMatrix_float(ppArray, 4, 10);
返回错误Access violation reading location 0xFFFFF...
。
3条答案
按热度按时间mm5n2pyu1#
如果编译器支持可变长度数组,那么你可以像这样定义函数:
否则,您可以像这样定义函数
就像
s71maibg2#
如果你不能使用可变长度数组,并且你的函数将接受不同维度的矩阵,那么你的函数将不得不将其视为一维数组,并手动计算每行的开始位置。大概是这样的:
3mpgtkmj3#
只是另一个解决方案与模板