提问人:Luca Marchio 提问时间:2/14/2023 更新时间:2/14/2023 访问量:42
realloc 如何在 C 语言中工作?它是否设置为空释放内存引用?[复制]
How does realloc work in C? Does it set to null deallocated memory reference? [duplicate]
问:
当我在指针上调用 realloc 以减小其大小时,会发生什么? 例如,让我们考虑一下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int* a = malloc(4*sizeof(int));
a[0]= 1;
a[1]= 1;
a[2]= 1;
a[3]= 1;
int* temp = realloc(a, 3* sizeof(int));
if(!temp)
exit(1);
a = temp;
a[3] = 10;
return 0;
}
我希望当我调用 a = realloc(a, 3* sizeof(int));它会抛出 SIGSEGV,但事实并非如此。
答: 暂无答案
评论
realloc
无法将其设置为 NULL,因为它是按值传递的。