Bonsoir!
Dans mon listing en C, j'ai un pbm de "segmentation fault", surement à cause de la libération d'un pointeur NULL...
Mon pbm est de réallouer de la mémoire (augmentation de la taille) via un pointeur temporaire afin de gérer au cas où une erreur de réallocation et de ne pas perdre au final le bloc mémoire...
mon code:
1ère question: que devient le pointeur tmp?
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
Si par ex. je faisavant de faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part free((void *)tmp);est-ce que p est réutilisable (ie non NULL)?
Code : Sélectionner tout - Visualiser dans une fenêtre à part free((void *)p);
En principe je dirais non...
2ème question: imaginons que le pointeur p soit global et le pointeur tmp local.
Ex. de code simple à partir du précédent.
Bref qd je sors de la boucle local, tmp n'a plus de portée (on sort du if) et donc prend la valeur NULL en théorie. Est-ce que ceci a de l'influence sur p?
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
En effet, j'ai un code plus compliqué où j'augmente plusieurs fois la taille d'un tableau dynamique global (mon ptr p ici) par la fonction realloc. Du coup j'utilise un ptr temporaire tmp ds une boucle locale (la réalloc est conditionnée à un test if d'ou mon ex.). Tmp est utilisé pour éviter de perdre mon ptr p si la réalloc se passe mal. Or au bout de plusieurs passages ds la boucle if et dc de réalloc, j'ai un "segmentation fault"...
Or en affichant via unavant de faire realloc, j'ai la mm adresse en hexadécimal...
Code : Sélectionner tout - Visualiser dans une fenêtre à part printf("%p %p\n", tmp, p)
En fait mon pbm vient de l'utilisation de 2 pointeurs qui pointent sur la mm zone mémoire.
Merci pour votre aide éventuelle. j'espère que j'ai été clair et assez détaillé pour voir mon pbm...a+

 

 
		
		 
        

 
			
			
 
   


 Utilisation de realloc et des pointeurs
 Utilisation de realloc et des pointeurs
				 Répondre avec citation
  Répondre avec citation


 
  
 
 
  Envoyé par acrosomia
 Envoyé par acrosomia
					
				
Partager