【发布时间】:2019-06-20 03:07:16
【问题描述】:
关于realloc()的问题。
如果我想扩大我之前用realloc() 分配的内存。
额外的内存是否会像calloc()一样初始化为0?
第二个问题是:
int * p =(int*)malloc(10*sizeof(int));
int* s = (int*)realloc(p,20);
p=s;
将s 分配给p 是调整指针p 大小的好方法吗?
我们可以realloc()calloc()分配的内存吗?
【问题讨论】:
-
手册是怎么说的?
-
除了the casting 和缺乏错误检查,看起来几乎就像它应该的样子。不,额外的内存不会被初始化。您可能想检查例如this
reallocreference -
哦,您的重新分配实际上分配了 shrink 分配的内存。您传递给
realloc的大小是要分配的新 大小(以字节为单位)。