J'ai créé ce code pour tester une erreur, que j'obtiens dans mon code principal, et il partage le même problème. Je reçois toujours des erreurs de segmentation ou des données corrompues (zéros ou nombres étranges).Erreur de segmentation après realloc dans la fonction
Voici le code:
int *p=NULL;
int func (int **point);
int main() {
int num = 5647;
p = malloc(sizeof(int)*2);
p[0] = num;
p[1]= 657;
printf("%d\n", p[0]);
printf("%d\n", p[1]);
func(&p);
printf("%d\n", p[0]);
printf("%d\n", p[1]);
printf("%d\n", p[2]);
printf("%d\n", p[3]);
return 0;
}
int func (int **point){
*point = realloc(*point,sizeof(int)*4);
if (*point==NULL){
printf("\n abort \n");
exit(0);
}
*point[0] = 867;
*point[1]= 777;
*point[2] = 67;
*point[3]= 77;
}
Je reçois la faute de segmentation sur le *point[1]=777;
. Si j'essaie de faire comme point[1]=777;
, je reçois des données erronées. Avec tous les changements dans int func (int **point);
ou func(&p);
je reçois défaut de segmentation sur realloc
.
S'il vous plaît aviser, j'ai lu des informations sur les doubles pointeurs et essayé de suivre toutes les solutions que j'ai trouvées, mais chaque fois que je reçois cette erreur.
Merci beaucoup! –