Bonjour à tous,

Je fais face à une erreur lorsque je tente de reallouer l'espace mémoire d'un pointeur passé en paramètre d'une fonction.

Voici mon pseudo code qui modifie juste la taille de ma variable X:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main (void)
{
     double *X;
     X	= (double*)calloc(10,sizeof(double));
 
//   pour i=0 jusqu'à 10 X[i] = i ;
 
     fonction(X);
}
 
fonction( double *X)
{
     int newDim = 15;
     X = realloc(X, newDim*sizeof(double));
}
A la compilation je n'ai pas de problème, mais lorsque je lance le programme j'ai cette erreur :

*** glibc detected *** ./myProg: realloc(): invalid next size: 0x000000000462a670 ***
======= Backtrace: =========
/lib64/libc.so.6[0x3dfcc7421b]
/lib64/libc.so.6(realloc+0x1d0)[0x3dfcc751a0]

[...]
Merci pour votre aide