指向二维数组的指针该怎么赋值?

假设有一个指针pt,指向一个5×12的数组,我需要用这个数组存储累加,或者累乘运算的结果,
那么初始化时,这个数组的每个元素都要赋值为0或者1
有什么简单的方法实现这个赋值?

是不是必须写一个二重循环来赋值?

暂时是必需的
for(i=0;i<5;i++)
for(j=0;j<12;j++)
*(*(pt+i)+j)=1;
这样就可以给指向数组进行赋值了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-05-27
可以用memset函数,因为数组分配的空间是连续的.
假设是int型的,如
int a[5][12]; //二维数组
int (*ptr)[12] = a; // a pointer to an array, which has five element,row pointer
for(int i =0; i < 5; i++){
memset(ptr+i, 0, sizeof(int)*12);
}
memset(ptr,0,sizeof(int)*60); 或者 memset(ptr,1,sizeof(int)*60);
相似回答