Insertion dans structure

angebrune8 Messages postés 22 Date d'inscription jeudi 31 janvier 2008 Statut Membre Dernière intervention 26 mars 2009 - 25 mars 2009 à 13:41
asari29 Messages postés 21 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 18 décembre 2009 - 25 mars 2009 à 17:21
Bonjour,j'essaie de faire une insertion dans une structure mais ca ne marche pas comme je le souhaite:



int main(void){
srand((int)time(NULL));

struct objets placard =creer_struct();

for(int i =0;i<5;i++) {
int var=rand()%100;
inserer_structure(placard,var);
}
return EXIT_SUCCESS;
}






le résultat est que ça m'insère toujours le même entier, ainsi dans
ma structure je v avoir 5 fois la même valeur. ou alors si i est trop
grand j'ai une erreur de segmentation.

quelqu'un aurait une idée svp?

4 réponses

asari29 Messages postés 21 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 18 décembre 2009
25 mars 2009 à 16:36
Bonjour, ton problème vient probablement de la fonction insérer_structure puisque le code qui suit fonctionne sans problème:

#include <stdlib.h>
#include <stdio.h>

int main(void)
{
      int var =0;
      srand((int)time(NULL));

      int i;
      for(i = 0 ; i < 100; i++)
      {
              var = rand()%100;
              printf("%d\n",var);
      }
      return 0;
}
0
angebrune8 Messages postés 22 Date d'inscription jeudi 31 janvier 2008 Statut Membre Dernière intervention 26 mars 2009
25 mars 2009 à 16:58
merci je vais continuer de chercher . mais ce qu'il y de curieux c'est que si je teste ne faisant
insere_structure(placard,5);
inserer_structure(placards,18)...

ca marche bien . le probleme vient p_e du fait que mon insertion utilise le type void *
0
asari29 Messages postés 21 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 18 décembre 2009
25 mars 2009 à 17:16
C'est peut être lors de la création de ta structure.
Lorsque tu fais
"struct objets placard = creer_struct();"

j'imagine que ta fonction retourne une structure objet qui a été créé dans la fonction.
Si c'est le cas, rien ne garantit qu'elle continue son existence hors de la fonction.
Peut être faudrait il que tu fasses une recopie de la structure retournée du genre:

struct objet placard;
strcpy(&placard,
creer_struct()
);

Je ne suis pas sûr du prototype de la fonction strcpy et pas non plus sûr que soit ce que tu souhaites
faire.
0
asari29 Messages postés 21 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 18 décembre 2009
25 mars 2009 à 17:21
D'ailleurs je me trompe, c'est memcpy et pas strcpy...
0
Rejoignez-nous