如何为结构数组指针动态分配内存。例如:我有一个大小为 1024 的结构数组指针,但如果我需要增加大小怎么办?我需要动态定义 arr 大小。初始化时,我将大小保持为1024。当空间超过分配时,我需要增加空间,如何增加它?
问问题
87 次
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 回答