Bobydu63
Messages postés2Date d'inscriptionlundi 31 janvier 2005StatutMembreDernière intervention17 juin 2005
-
15 juin 2005 à 11:01
Bobydu63
Messages postés2Date d'inscriptionlundi 31 janvier 2005StatutMembreDernière intervention17 juin 2005
-
17 juin 2005 à 00:37
Bonjour a vous,
alors voila j'ai cree cette procedure :
Code :
<li>//mode = mode d ouverture
</li><li>//prod = identifiant fichier
</li><li>//nom = nom du fichier
</li><li>//type = nom de la structure
</li><li>//enr = structure a lu ou a copier
</li><li>
</li><li> void **tab=NULL;
</li><li> int taille=10;
</li><li>
</li><li> prod= load(prod,nom,mode);// appele fonction d'ouverture de fichier
</li><li> tab =(void **) malloc (type*taille);// faire une boucle de double allocation
</li><li>
</li><li>
</li><li> for (int i=0;i<taille;i++)
</li><li> {
</li><li>
</li><li> if (retour1==0)
</li><li> {
</li><li> printf("%s","MessageErreur(Ecriture
impossible,Appuyer sur une touche pour continuer)");getch();
</li><li> }
</li><li> else
</li><li> {
</li><li> tab[i]=enr;
</li><li> }
</li><li> }
</li><li>
</li><li> fclose(prod);
</li><li>
</li><li> return(tab);
</li><li>}</li>
je voulais en faire une fonction polymorphe
car j en ai besoin de nombreuse fois mais avec des structures
differentes mais lorsque je recupere tab dans le prog appelant et que
je l affiche il me met l'adresse du pointeur donc données inexploitables je ne sais pas comment utiliser tab pour recuperer les données merci d'avance
Bobydu63
Messages postés2Date d'inscriptionlundi 31 janvier 2005StatutMembreDernière intervention17 juin 2005 17 juin 2005 à 00:37
pourquoi tu alloue et renvoie void ** ?pourquoi tu te contente pas de void * ?
void * ne marche pas je ne peux pas redefinir la taille d'un void * mais seulement le caster
Après tout c'est un pointeur sur les données .
regarde bien ce n'est pas les données qui m'interresse la mais bel et bien l'adresse
polymorphe
oui c un template, adaptable a tout type effectivement puisque je me sert en fait de 8 structures differente de plus je ne voulais pas utiliser de classes qui etaient peut etre plus adapté mais je souhaite faire du C pur (enfin presque fwrite/fopen/fread n'est deja plus du premier niveau mais disons que je ne souhaite pas utilisé un langage de second degré)
enfin merci bien mais en fait j'ai reussi a recupérer et exploiter les données et a ne pas afficher l'adresse mais bel et bien les données
si vous voulez la reponse ou une question sur le code je suis a votre disposition Merci a tous