Aller au contenu
View in the app

A better way to browse. Learn more.

Next

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Urgent, probleme de structure en C

Featured Replies

Posté(e)

#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 :(

Posté(e)

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. :)

  • 3 semaines après...
Posté(e)

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 ??? :eeek2:

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.

:postsinutiles:

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.