[LGC] TD3 getOneUnionInfo

Voir le sujet précédent Voir le sujet suivant Aller en bas

resolu [LGC] TD3 getOneUnionInfo

Message  jonas le Mar 03 Nov 2009, 21:51

Bon bein voilà mon problème :

lorsque je souhaite utiliser la fonction getOneUnionInfo, j'ai une exception windows et le programme est arrêté brutalement.

Le proto de la fonction (qui est donnée dans libsmb03.a) est le suivant :
Code:
UnionInfo * getOneUnionInfo ( TYPE * t );

Mon code dans sa forme la plus simplifiée :

Code:
   
   UnionInfo * oneUI;
   TYPE * type;

   printf("phase 1");
   oneUI = getOneUnionInfo(type);
   printf("phase 2");

le texte "phase 1" s'affiche,
ensuite il y a l'exception Windows n°c0000005 (violation d'accès --> segementation fault?)

voilà un moment que je cherche d'où vient le problème sans trouvé la réponse Sad

Je précise que :
les tests pour lesquels j'utilise les autres fonctions de libsmb03
Code:

Date * getOneDate(void);
UINT * getOneUINT(void);
DateInt * getOneDateInt(void);
const char * getStr(void);
fonctionnent tous !



merci à celui qui pourra m'aider !


Dernière édition par jonas le Mar 03 Nov 2009, 22:06, édité 3 fois

jonas

Nombre de messages : 234
Prénom : Jonathan
Statut : Ancien industrialisé
Localisation : Devant son clavier BÉPO !
Date d'inscription : 29/09/2008

http://www.xax.be

Revenir en haut Aller en bas

resolu Re: [LGC] TD3 getOneUnionInfo

Message  newu le Mar 03 Nov 2009, 22:00

TYPE t ;
UnionInfo * ui ;
ui = getOneUnionInfo( &t ) ;

essaie ça devrai marcher

newu

Nombre de messages : 117
Prénom : Abdou
Statut : 3ème gestion
Localisation : Je dors à l'école.
Date d'inscription : 25/09/2009

Revenir en haut Aller en bas

resolu Re: [LGC] TD3 getOneUnionInfo

Message  jonas le Mar 03 Nov 2009, 22:01

Génial ça fonctionne à présent !
Un grand merci ! Very Happy


Dernière édition par jonas le Mar 03 Nov 2009, 22:33, édité 1 fois

jonas

Nombre de messages : 234
Prénom : Jonathan
Statut : Ancien industrialisé
Localisation : Devant son clavier BÉPO !
Date d'inscription : 29/09/2008

http://www.xax.be

Revenir en haut Aller en bas

resolu Re: [LGC] TD3 getOneUnionInfo

Message  nvs le Mar 03 Nov 2009, 22:10

le mieux c'est quand même de savoir pourquoi ça ne marchait pas initialement. savoir pourquoi ce que newu propose marche en découle.









_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

resolu Re: [LGC] TD3 getOneUnionInfo

Message  jonas le Mar 03 Nov 2009, 22:29

je dirais que

je donnais à la fonction getOneUnionInfo un pointeur qui pointait vers une zone "aléatoire" puisque je n'ai pas initialisé le pointeur et je ne lui ai pas assigné de valeur non plus. La fonction getOneUnionInfo essayait de modifier la zone pointée par le pointeur. Et CRAK DEDANS windows à repérer que le soft tentait de modifier une zone qui ne lui avait pas été allouée.

avec le code de newu, on définit une variable et on envoie l'adresse de la variable à la fonction getOneUnionInfo, affin que celle-ci puisse modifier à sa guise le contenu de la variable. Ici le soft à le droit de la modifier car l'adresse pointée lui a été gracieusement attribuée par le SE.

Est-ce la bonne explication ?

jonas

Nombre de messages : 234
Prénom : Jonathan
Statut : Ancien industrialisé
Localisation : Devant son clavier BÉPO !
Date d'inscription : 29/09/2008

http://www.xax.be

Revenir en haut Aller en bas

resolu Re: [LGC] TD3 getOneUnionInfo

Message  smb le Mar 03 Nov 2009, 22:48

jonas a écrit:je dirais que

je donnais à la fonction getOneUnionInfo un pointeur qui pointait vers une zone "aléatoire" puisque je n'ai pas initialisé le pointeur et je ne lui ai pas assigné de valeur non plus. La fonction getOneUnionInfo essayait de modifier la zone pointée par le pointeur. Et CRAK DEDANS windows à repérer que le soft tentait de modifier une zone qui ne lui avait pas été allouée.

avec le code de newu, on définit une variable et on envoie l'adresse de la variable à la fonction getOneUnionInfo, affin que celle-ci puisse modifier à sa guise le contenu de la variable. Ici le soft à le droit de la modifier car l'adresse pointée lui a été gracieusement attribuée par le SE.

Est-ce la bonne explication ?

Pas mal !

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

resolu Re: [LGC] TD3 getOneUnionInfo

Message  Contenu sponsorisé Aujourd'hui à 01:09


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum