二维结构体数组赋值出错?大家帮忙看下
我计划定义一个二维结构体数组,程序在debug时程序中断,搞不定了。代码如下:
struct sctData **Mea = (struct sctData**)malloc(n*m*sizeof(sctData**));
for(i=0;i<=n;i++){
for(j=0;j<=m;j++){
Mea[i][j].distance = 0;//出错,程序中断
Mea[i][j].i=0;
Mea[i][j].j=0;
}
}
[解决办法]
二维数组和二维指针没有关系的,
二维数组在内存中实际和一维数组是一样的
struct sctData *Mea = (struct sctData*)malloc(n*m*sizeof(sctData)); for(i=0;i <n;i++){ for(j=0;j <m;j++){ Mea[i*m+j].distance = 0;//出错,程序中断 Mea[i*m+j].i=0; Mea[i*m+j].j=0; } }