Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Histoire de variable global et de passage par adresse a une fonction [ Archives / Au secours ] (Anysse)

mercredi 7 décembre 2005 à 23:20:03 | Histoire de variable global et de passage par adresse a une fonction

Anysse

Salut, j 'ai creer une fonction qui est censee passer a une structure un certain nomber de valeurs. Je donne a cette fonction, la structure en question, ainsi ques les differentes valeurs  a passer. Mais lorsque la structure n'est pas declare a l'exterieur du main ( c'est a dire en variable globale ) le compilateur genere des erreurs. Et je ne dois absolumment pas dans mon programme utiliser de variables globales, comment faire ?

voici la structure

struct eleve
  {
  char nom[25];
  char prenom[25];
  int age;
  char lycee[25];
  char interet[30];
  };

voici ma fonction
void ajouter_eleve (struct eleve *el, char nom[20], char prenom[20], int age, char lycee[20], char interet[20])
{
strcpy((*el).nom),nom);    
strcpy((*el).prenom),prenom);
strcpy((*el).lycee),lycee);
strcpy((*el).interet),interet);
(*el).age=age;    
}

et voici les erreurs

 C:\Dev-Cpp\EXOS\SansNom3.cpp In function `void ajouter_eleve(eleve*, char*, char*, int, char*, char*)':

14 C:\Dev-Cpp\EXOS\SansNom3.cpp invalid use of undefined type `struct eleve'

12 C:\Dev-Cpp\EXOS\SansNom3.cpp forward declaration of `struct eleve'

14 C:\Dev-Cpp\EXOS\SansNom3.cpp expected `;' before ')' token

voila apres elles se repetent pour les autres arguments



Merci d'avance poru votre aide.


jeudi 8 décembre 2005 à 00:43:30 | Re : Histoire de variable global et de passage par adresse a une fonction

LaPatoshe

Salut, j'ai quelque peu modifié ton code et cela fonctionne. Le plus gros prob venait de (*el). je l'ai remplacé par el->, l'opérateur -> remplaçant le point lors des accès aux variables d'un pointeur. Cependant, je me suis heurté à un autre problème, le compilateur me forçait à initialisr les veriables de toto lorsque le le déclarait dès le début comme étant un pointeur. C'est pourquoi, je l'ai déclaré au départ comme variable de structure normale, et je l'ai passée par son adresse dans la fonction.

#include <windows.h> //pour l'utilisation de lstrcpy sous vc++
#include <stdio.h>// pour l'utilisation de printf

struct eleve
  {
  char nom[25];
  char prenom[25];
  int age;
  char lycee[25];
  char interet[30];
  };


void ajouter_eleve (eleve *el, char nom[25], char prenom[25], int age, char lycee[25], char interet[30]);


int main()
{
 //Exemple pour vérifier
 struct eleve toto;
 ajouter_eleve(&toto, "Toto", "Marcel", 20, "cabanis", "sport");
 printf("%s", toto.lycee );
 return 0;
}

void ajouter_eleve (eleve *el, char nom[25], char prenom[25], int age, char lycee[25], char interet[30])
{
lstrcpy(el->nom,nom);
lstrcpy((el->prenom),prenom);
lstrcpy((el->lycee),lycee);
lstrcpy((el->interet),interet);
el->age=age;    
}

LaPatoshe


jeudi 8 décembre 2005 à 01:27:53 | Re : Histoire de variable global et de passage par adresse a une fonction

vecchio56

Administrateur CodeS-SourceS
strcpy((*el).nom),nom);

Je crois que tu fermes ta parenthèse un peu tôt, comme pour les lignes qui suivent.

Pour (*e). et e->, c'est strictement équivalent

Peut être faut-il aussi déclarer la structure ainsi:


struct eleve_
{
  char nom[25];
  char prenom[25];
  int age;
  char lycee[25];
  char interet[30];
} eleve;

jeudi 8 décembre 2005 à 08:58:15 | Re : Histoire de variable global et de passage par adresse a une fonction

Anysse

Salut merci de votre rerponse
au faite le programme marchait avec le (*el). tant que je declarais la structure hors du main, en global. le probleme c'est que je ne dois pas la declarer hors du main  et je en vois pas comment faire ?

jeudi 8 décembre 2005 à 21:36:15 | Re : Histoire de variable global et de passage par adresse a une fonction

LaPatoshe

Réponse acceptée !
salut. Je me demande si ta fonction déclarée avant le main, peut reconnaitre le type de ta structure si cette dernière est déclarée à l'intérieur du main, donc après.

LaPatoshe



Cette discussion est classé dans : fonction, char, cpp, eleve, el


Répondre à ce message

Sujets en rapport avec ce message

Appel d'une fonction [ par t0ine ] Bonjour , je début en c++ et c'est la première fois que je crée une fonction et que je dois l'appeller mais ca ne foncctionne pas . Je ne comprend plu Petit problème avec NEW DELETE et RETURN [ par kuruma ] Bonjourj'ai un petit problème avec cette fonction. en c++ ou c :#include #include #include #include #include #include <cst convertir HKEY en char* [ par julienbj ] Bonjour, je cherhce à convertir le type HKEY en char*Je travaille sur une librairie pour utiliser la base de registre, et je souhaiterais pouvoir sauv fonction qui converti un integer en char* sous VC++ [ par ninouch ] Je voudriat utiliser la fonction TextOut pour afficher un entier à l'écran mais avant je dois le convertir en char*, quelle fonction dois-je utiliser? HELLP ME FOR MY PTI [ par dj_ricom ] Je suis actuellement en première année BTS IG et je souhaite réaliser un PTI sur la gestion d'une école notament en ce qui concerne les notes des elev conversion [ par anubis52100 ] je souhaiterai conaitre le code pour convertir un CString en Char*voila se que j'ai fait mais jarive pas a convertir strNom en char*j'y arive mais qua pointeurs vers une fonction [ par PunkDude424 ] Bon j'ai le problème suivant....jai un programme avec un autre projet qui est dans une librairie externet qui est un LogWriter...quand je créee mon ob Fonction *char [ par moustachu ] Bonjour,Je suis en train de faire évoluer une appli qui a pas de paramétrage à sortir de l'appli. Tout est codé en dir et ça craint assez (ex : strcpy tableau [ par zeratul67 ] J'ai une fonction qui doit me renvoyer un tableau à deux dimensions, mais la taille de l'une des ces 2 dimensions est inconue. (tableau: char cp[x][25 PROBLEME pour retourner un char* a partir d'un fichier [ par kobee12 ] Voici ma fonction. Elle prend en argument un caractere. A partir de ce caractere, elle renvoie la chaine qui lui est associe.Par exemple:"fichier_lang


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,390 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.