淘客熙熙

主题:【求助】向各位高手请教一个c语言中数组与指针的问题 -- 数值分析

共:💬84 🌺26
全看分页树展 · 主题 跟帖
家园 你这个分配法有问题

这个分配法有问题,数组a的地址不连续

我修改一下,分配nx*ny的二维数组:

int *a=(int**)malloc(nx*sizeof(int*));

a[0]=(int*)malloc(nx*ny*sizeof(int));

for (int i=1;i<nx;i++)

{

a[i]=a[0]+ny*i;

}

释放时

free(a[0]);

free(a);

这样的好处是,二维数组的地址是连续的

比如你要初始化,就可以

memset(a[0],'\0',nx*ny*sizeof(int));

原来你那种分配法就不行。

再比如

*(a[0]+m*ny+n)等于a[m][n],原来的分配法就不行

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河