NiTrOuS Posted June 13, 2004 Share Posted June 13, 2004 #include <stdio.h> #include <conio.h> struct test { char code[6]; float rem[6]; }; void prestation(struct test *); void main() { int i; struct test tab[6]; prestation(&tab[6]); for(i=0;i<6;i++) { printf("%s",tab[i].code); printf("%.2f",tab[i].rem); } clrscr(); } void prestation(struct test *tab[6]) { int i; for(i=0;i<6;i++) { printf("\nEntrez le code de la prestation %d: ",i+1); gets(tab[i]->code); printf("\nEntrez la remuneration pour la prestation %d: ",i+1); scanf("%f",tab[i]->rem); } } Voilà il me dit qu il y a un probleme de linker ... je ne vois pas quel est le probleme :( Link to comment Share on other sites More sharing options...
Irgoff Posted June 13, 2004 Share Posted June 13, 2004 Sans ton message d'erreur, on peut deviner que tu n'as inclus la librairie "conio" dont tu fais usage : ajoute "-lconio" à ton linker. De plus tu déclares une fonction void prestation(struct test *); mais tu la codes en void prestation(struct test *tab[6]) qui est équivalent à void prestation(struct test * *); donc le linker ne trouve pas la fonction void prestation(struct test *); et te demande où est la librairie qui en contient le code. Tu peux aussi changer ton "void main" (Borland) en "int main" (standard). Voilou. :) Link to comment Share on other sites More sharing options...
mickey_mouse Posted July 5, 2004 Share Posted July 5, 2004 je ne sait pas si tu est encore interréssé, mais voila #include <stdio.h> #include <conio.h> struct test { char code[6]; float rem; // a quoid donc servait ce tableau ??? }; void prestation(struct test *); int main(void) { int i; struct test tab[6]; prestation(tab); //tab est bien un pointeur for(i=0;i<6;i++) { printf("%s",tab.code); printf("%.2f",tab.rem); } getche(); //clrscr(); } void prestation(struct test tab[]) { int i; char vider; for(i=0;i<6;i++) { printf("\nEntrez le code de la prestation %d: ",i+1); gets((tab+i)->code); printf("\nEntrez la remuneration pour la prestation %d: ",i+1); scanf("%f",&(tab+i)->rem); gets(&vider); } } bon ton code est un exemple de tt ce qu'il ne faut pas faire !!! a savoir, tab[] est un pointeur, inutile d'ajouter * pour utiliser -> il faut un pointeur, exit donc les [] et vive les incrementation. si tu veut recuperer une variable a partir de (tab+i) qui est un pointeur, tu rajoute * devant ; *(tab+i) ou tu colle un -> derriere. mais le gets prend des pointeur? et bien code est un tableau et contien donc un pointeur... aïl la tete ??? bon pour la variable rem, j'ai viré le tableau dans la classe, qui ne servait a rien. (tab+i)->rem pointe donc une variable, dont on obtien le pointeur avec & un petit bug, le retour chario persiste dans le buffer de caractere, je le recupere dans vider avant de boucler. ha... et prestation, et bien cette fonction fonctionne avec un pointeur; tab suffit donc. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.