我无法找到确切问题的答案,因为条件更具体一些: 我如何分配struct指针数组。
typedef struct COORDS
{
int xp;
int yp;
} coord;
coord** xy;
我想分配它:{{1}}但是在访问它时会返回无效的内存错误。
答案 0 :(得分:2)
coord** new = malloc (500 * sizeof (coord*));
int idx = 0;
for(; idx < 500; ++idx)
new [idx] = malloc (460 * sizeof (coord));
答案 1 :(得分:0)
静态分配:
coord xy[500][460];
动态分配:
coord** xy = (coord**)malloc(sizeof(coord*)*500);
for (int i=0; i<500; i++)
xy[i] = (coord*)malloc(sizeof(coord)*460);
// and at a later point in the execution of your program
for (int i=0; i<500; i++)
free(xy[i]);
free(xy);