【发布时间】:2021-11-13 18:55:13
【问题描述】:
我正在尝试将二维数组复制到另一个二维数组。由于名称 (srcAry) 是源数组的第一个元素的地址,因此我能够在 for 循环中使用指针算法打印出源数组中的所有值。我使用行数乘以列数作为停止循环的条件。如果我尝试使用此方法将值分配给新数组,我会收到一条错误消息(错误:分配给具有数组类型的表达式)。这可以做到这一点还是我仅限于使用两个带有索引的嵌套for循环? ...
void copyAry(double *pAry, int numRows, int numCols)
{
double newAry[numRows][numCols];
int end = numRows * numCols;
int ctr = 0;
for( ; ctr < end; ctr++)
// printf("*(pAry + %d) = %.1f\n", ctr, *(pAry + ctr)); //this works fine
{
*(newAry + ctr) = *(pAry + ctr); //this is where I receive error
}
return;
}
... 提前致谢。
【问题讨论】:
-
您是否需要用
new, malloc或其他函数为newAry分配内存,或者定义double newAry[numRows][numCols];会在您的语言中自动分配内存?
标签: pointers math multidimensional-array