我正在制作的游戏中需要一个结构体数组-但我不想将数组限制为固定大小。有人告诉我有一种方法可以在需要时使用realloc使数组变大,但找不到任何可行的示例。

有人可以告诉我该怎么做吗?

最佳答案

首先创建数组:

structName ** sarray = (structName **) malloc(0 * sizeof(structName *));

始终单独跟踪尺寸:
size_t sarray_len = 0;

增加或截断:
sarray = (structName **) realloc(sarray, (sarray_len + offset) * sizeof(structName *));

然后设置大小:
sarray_len += offset;

乐于提供帮助,希望对您有所帮助。

09-26 11:10