我有一个简单的程序,用于学习目的,但是当我从分配的数组重新分配时,我不断返回 null。
#include <stdio.h>
#include <stdlib.h>
void main()
{
char *ptr, *retval;
ptr = (char *)calloc(10, sizeof(char));
if (ptr == NULL)
printf("calloc failed\n");
else
printf("calloc successful\n");
retval = (char *)realloc(ptr, 5);
if (retval == NULL)
printf("realloc failed\n");
else
printf("realloc successful\n");
free(ptr);
free(retval);
}
我无法重新分配,retval = (char *)realloc(ptr, 5);
我做错了什么?