如何为struct array指针动态分配内存。 例如:我有一个结构数组指针,大小为1024,但如果我需要增加大小怎么做呢? 我需要动态定义arr大小。对于初始化,我将大小保持为1024。 我需要在超过分配时增加空间,如何增加它?
答案 0 :(得分:1)
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);
}
答案 1 :(得分:1)
对于动态内存分配,使用array implemented using linked lists
会有所帮助。
您可以使用malloc()
函数将内存分配给现有结构节点。
如果希望结构对象中的数组增加其内存,则可以使用链表而不是数组内部结构。