我有一个结构“单元格”定义为
typedef struct{
int id;
terrainType terrain;
} cell;
然后我制作一个二维单元格数组
cell** makeCellGrid(int sizeX, int sizeY)
{
cell** theArray;
int i;
theArray = (cell**) malloc(sizeX*sizeof(cell*));
for ( i = 0; i < sizeX; i++)
{
theArray[i] = (cell*) malloc(sizeY*sizeof(cell));
}
return theArray;
}
起初我认为这工作正常,但后来出现了一些段错误,我发现使用某些值(例如 makeCellGrid(32, 87) )它会中断。我对 C 指针和内存垃圾相当新鲜,希望有人能在这里为我指明正确的方向。
使用较低的数字界限,我可以毫无问题地访问它
map[i][j].id = x;
等等
编辑:忘记添加,从测试中,段错误源自
theArray[i] = (cell*) malloc(sizeY*sizeof(cell));