#include<stdio.h>
#include<stdlib.h>
void main()
{
int *p;
p = malloc(6);
p = realloc(p, 10);
if (p == NULL)
{
printf("error");
exit(1);
}
}
以本实施例中的代码,假设总存储为10个字节和2个字节被用于通过指针的声明为int类型和ohter 6个字节通过malloc函数的剩下的2个字节是由其他程序占用,现在当我运行realloc函数来扩展该指针所指向的存储器,它将搜索在存储器10个字节,并且当它不存在,它分配10个字节的存储器,从堆区域并复制malloc的内容并将其粘贴到堆区中新分配的内存区域,然后删除存储在malloc中的内存?
不realloc()的返回NULL指针,因为内存不可用?无权利!? 它确实去堆区的内存分配权?它不会返回一个空指针吗?
'当它不可用时,它会从堆中分配10个字节的内存'它是否必须是“is”而不是“不是”? –