分配struct指针数组?

时间:2014-05-13 12:43:08

标签: c arrays pointers struct malloc

我无法找到确切问题的答案,因为条件更具体一些: 我如何分配struct指针数组。

typedef struct COORDS
{
  int xp;
  int yp;
} coord;

coord** xy;

我想分配它:{​​{1}}但是在访问它时会返回无效的内存错误。

2 个答案:

答案 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);