Les fonctions et les structures
Fermé
driftman123
Messages postés
15
Date d'inscription
vendredi 23 mars 2012
Statut
Membre
Dernière intervention
31 mai 2014
-
Modifié par driftman123 le 12/02/2014 à 12:36
driftman123 Messages postés 15 Date d'inscription vendredi 23 mars 2012 Statut Membre Dernière intervention 31 mai 2014 - 12 févr. 2014 à 16:35
driftman123 Messages postés 15 Date d'inscription vendredi 23 mars 2012 Statut Membre Dernière intervention 31 mai 2014 - 12 févr. 2014 à 16:35
A voir également:
- Les fonctions et les structures
- Dans la table des matières de ce document, le chapitre 6 et ses 2 sections n'apparaissent pas. trouvez l'erreur dans la structure du document et corrigez-la. mettez à jour la table des matières. quel est le mot formé par les lettres en majuscules de la table des matières après sa mise à jour ? - Forum Word
- Fonction si et - Guide
- Codes secrets Android : accéder aux fonctions cachées - Guide
- Youtube ne fonctionnera pas sans les services google play ✓ - Forum Android
- Ce document a activé les fonctions etendues d'adobe reader ✓ - Forum Windows
1 réponse
[Dal]
Messages postés
6057
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
17 mars 2023
1 043
Modifié par [Dal] le 12/02/2014 à 14:57
Modifié par [Dal] le 12/02/2014 à 14:57
Salut driftman123,
1.
Ne mets pas de & dans scanf pour les tableaux, ils sont déjà traités comme des pointeurs vers le premier élément du tableau, ou vers l'élément indiqué par l'indice.
Si ta fonction a pour prototyle
Ce sont des étudiants ou des produits que tu traites.. tu es sûr que c'est ton code ?
Si tu n'utilises pas les paramètres de main, c'est
Ta structure conditionnelle switch a une erreur de syntaxe, enlève les deux points à
2.
Sur ta fonction.
En définissant
Et du coup, lorsque tu voudras faire tes fonctions de modification ou de recherche, tu n'auras plus rien.
Pour
- définir
- définir
- définir un pointeur sur
Dal
1.
Ne mets pas de & dans scanf pour les tableaux, ils sont déjà traités comme des pointeurs vers le premier élément du tableau, ou vers l'élément indiqué par l'indice.
Si ta fonction a pour prototyle
int fonction_ajout()elle doit renvoyer un int. Si elle ne renvoie rien, c'est
voidque tu dois indiquer en type de retour. S'agissant des paramètres, tu devrais les spécifier explicitement (cf. la suite sur ce sujet).
Ce sont des étudiants ou des produits que tu traites.. tu es sûr que c'est ton code ?
Si tu n'utilises pas les paramètres de main, c'est
int main(void)que tu devrais écrire.
Ta structure conditionnelle switch a une erreur de syntaxe, enlève les deux points à
switch (choice):.
2.
Sur ta fonction.
En définissant
struct etudet
struct etud e[10];dans ta fonction, tu perdras automatiquement l'allocation de cet espace mémoire et la variable en quittant ta fonction.
Et du coup, lorsque tu voudras faire tes fonctions de modification ou de recherche, tu n'auras plus rien.
struct etuddevrait être définit en dehors de toute fonction, après tes include (ou dans un fichier .h).
Pour
struct etud e[10];tu as plusieurs choix, par exemple :
- définir
struct etud e[10];en dehors de toute fonction (mais c'est alors une variable globale, ce que certains considèrent comme devant être évité, si possible)
- définir
struct etud e[10];dans main, et passer ton tableau en paramètre de la fonction, avec sa taille,
- définir un pointeur sur
struct etud, allouer dynamiquement la mémoire nécessaire en fonction des besoins (avec malloc), passer le pointeur en paramètre de la fonction avec sa taille, puis libérer la mémoire lorsque tu n'en as plus besoin (avec free)
Dal
12 févr. 2014 à 14:59
12 févr. 2014 à 16:35
#include<conio.h>
#include<stdio.h>
int main(void)
{
int choice;
struct etud {
char nom[30], qte[30], date[10];
};
printf("Pour inserer un produit-----------------: 1\n");
printf("Pour supprimer un produit---------------: 2\n");
printf("Pour modifier les données d'un produit--: 3\n");
printf("Pour afficher un produit----------------: 4\n");
scanf("%d",&choice);
if (choice==1)
{
function_1();
getch();
}
void function_1(struct etud)
{
int i,n;
struct etud e[10];
printf("donnez n:");
scanf("%d",&n);
for (i=1;i<=n;i++)
{
printf("nom_prod:"); scanf("%s",&e[i].nom);
printf("qte:"); scanf("%s",&e[i].qte);
printf("date:"); scanf("%s",&e[i].date);
}
};