J'ai un programme simple, à des fins d'apprentissage, mais je continue d'obtenir null retourné quand je realloc de tableau alloué.realloc return 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);
}
Je ne suis pas en mesure de réallouer, retval = (char *)realloc(ptr, 5);
ce que je fais mal?
Vous ne devriez pas libérer 'ptr'. – md5
Est-ce supposé être du code C ou du code C++? –
'void main' est un comportement indéfini (sauf si votre implémentation le définit) – pmg