0

如何为结构数组指针动态分配内存。例如:我有一个大小为 1024 的结构数组指针,但如果我需要增加大小怎么办?我需要动态定义 arr 大小。初始化时,我将大小保持为1024。当空间超过分配时,我需要增加空间,如何增加它?

4

2 回答 2

1

realloc(). 就像是

struct foo *ptr;
ptr = malloc(sizeof(*ptr) * 1024);

// later
struct foo *tmp = realloc(ptr, sizeof(*ptr) * 2048);
if (tmp) {
    ptr = tmp;
} else {
    // something nasty happened
    free(ptr);
    exit(-1);
}
于 2013-02-02T06:22:52.630 回答
1

对于动态内存分配,使用array implemented using linked lists会有所帮助。您可以使用malloc()函数将内存分配给现有的结构节点。

如果您希望结构对象中的数组增加其内存,那么您可以使用链表而不是结构内部的数组。

于 2013-02-02T06:25:48.537 回答