Bonjour,
Dans le cadre d’un projet, j’ai identifié une ligne de code qui posait problème avec la fonction realloc.
J’aimerais donc vérifier ma bonne compréhension de cette fonction.
Êtes-vous d’accord que le code suivant est correct, ne présente aucune fuite de mémoire et utilise correctement la fonction realloc ?
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int* p = malloc(2*sizeof(int));
if (!p)
return EXIT_FAILURE;
p[0] = 42;
p[1] = 63;
p = realloc((void*) p, (size_t) 530);
if (!p)
return EXIT_FAILURE;
p[487] = 74;
// Affiche : [42, 63, 74]
printf("[%d, %d, %d]", p[0], p[1], p[487]);
free(p);
return EXIT_SUCCESS;
}
(Si oui, si j’ai bien compris realloc, alors j’expliquerai ce que j’ai eu comme erreur : realloc qui corrompt les données en mémoire…)
+0
-0