Erreur de segmentation [Résolu]

Messages postés
15
Date d'inscription
jeudi 21 mai 2009
Statut
Membre
Dernière intervention
24 novembre 2010
- - Dernière réponse : cool2source
Messages postés
15
Date d'inscription
jeudi 21 mai 2009
Statut
Membre
Dernière intervention
24 novembre 2010
- 24 nov. 2010 à 05:15
Bon je dois encore avoir du mal avec les pointeurs ( visiblement)...
Je compile le code ci-dessous avec gcc et le seul résultat que j'obtiens est : "Erreur de segmentation" .

Code :
int main(int nb_arg, char **arg)
{
long *ptr;
fonction(ptr);
printf("%ld",*ptr);
return 0;
}

void fonction(long *ptr)
{
*ptr=1;
}

merci
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
92
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
23 septembre 2015
3
Merci
Si ton fonction ne fait que ce genre de travail, il est inutile d'utiliser les pointeurs.
Utilise plutôt une référence :
void fonction(long & val) 
{ 
val = 1; 
}

int main(int nb_arg, char **arg) 
{ 
long val; 
fonction( val); 
printf( "%ld", val); 
return 0; 
} 

Ca t'évitera de t'encombrer avec des pointeurs, mais sache que pour utiliser la fonction que tu as actuellement, tu peux faire ceci :
long val; 
fonction( & val); 


Coin coin !

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 204 internautes nous ont dit merci ce mois-ci

Commenter la réponse de dragonjoker59
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
0
Merci
Salut

Juste une question : ton pointeur, il pointe vers quelle variable?
A+

____________________________________________________________________________
Logiciel en traitement de l'image gratuit et open source.
Commenter la réponse de Pistol_Pete
Messages postés
14658
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
15 novembre 2019
90
0
Merci
Yo!
Comme le dit Pistol_Pete, il manque la variable pointée par ton pointeur.
Un truc du style:
long lvar;
long *ptr = &lvar;
...


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Rejoignez mon réseau professionnel sur Viadeo
Commenter la réponse de BunoCS
Messages postés
15
Date d'inscription
jeudi 21 mai 2009
Statut
Membre
Dernière intervention
24 novembre 2010
0
Merci
merci pour vos réponses ! :)
Commenter la réponse de cool2source