Accueil > Forum > > > > tableau dans une fonction
tableau dans une fonction
mardi 13 janvier 2009 à 19:23:57 |
tableau dans une fonction

meksoft002
|
salut, je vouderais mettre la dimension d'un tableau a partir d'une fonction mais..l'éxecution ne se termine pas quand je la lance
void creer(Personne** pers,int nbrelem){
char* nom ; char* prenom ; unsigned int age;
*pers=new Personne[nbrelem];
for(int i=0;i<nbrelem;i++){
cout<<"donnez le nom , le prenom et l'age de "<<i+1<<"eme elements \n";
fflush(stdin);
cin>>nom;
fflush(stdin);
cin>>prenom;
fflush(stdin);
cin>>age;
*((*pers)+i)=Personne(nom,prenom,age); // ici le probleme...pk?
}
}
//*dans le main
Personne *p;
creer(&p,3);
|
|
mercredi 14 janvier 2009 à 00:38:16 |
Re : tableau dans une fonction

gamemonde
|
La tu fais un tableau en deux dimension X,Y
si je me fis a ce que tu veux faire c'est :
void creer(Personne *pers,int iNbElement) { if (iNbElment > 0) { pers = new Personne[iNbElement]; if (pers) { .... pers[i] = SetPersonne(nom,prenom,age); // car ton object est deja construit tu ne peux pas appelé un autre constructeur } } }
dans le main Personne *p creer(p,5);
|
|
mercredi 14 janvier 2009 à 10:52:27 |
Re : tableau dans une fonction

uaip
|
pers est un "pointeur de pointeur", donc *pers retourne l'adresse de la variable pointée par le pointeur lui même pointé, non ? Sinon il y a du C++ dans ton code, or on est dans la rubrique C, ici.
Cordialement, uaip.
|
|
mercredi 14 janvier 2009 à 20:21:32 |
Re : tableau dans une fonction

meksoft002
|
pour gamemonde..... alors fauderait-il mettre une fonction membre (ou amie) appellée setpersonne selon toi?
pour uaip... :p je n'ai pas fais attention merci pour la remarque....
|
|
mercredi 14 janvier 2009 à 23:26:32 |
Re : tableau dans une fonction

uaip
|
Salut, Tu parles de fonction amie, donc je suppose que Personne est une classe. (ton code étant donc bel et bien en C++). Comme tu n'as donné ni le code de la classe ni celui des méthodes, j'ai essayé de recoder vite fait un truc similaire. Voilà ce que j'obtiens : #include <iostream> using namespace std; class Personne { public: Personne(); Personne(char* nom,char* prenom,int age); int Age; char Nom[25], Prenom[25]; }; Personne::Personne() { strcpy(this->Nom,""); strcpy(this->Prenom,""); this->Age=0; } Personne::Personne(char* nom,char* prenom,int age) { strcpy(this->Nom,nom); strcpy(this->Prenom,prenom); this->Age=age; } void SetPersonne(Personne p,char* nom,char* prenom,int age) { strcpy(p.Nom,nom); strcpy(p.Prenom,prenom); p.Age=age; } void creer(Personne *pers,int iNbElement) { if (iNbElement > 0){ char nom[25]; char prenom[25]; unsigned int age; pers=new Personne[iNbElement]; if (pers) { fflush(stdin); for(int i=0;i < iNbElement;i++) { cout << "Nom :" << endl; cin >> nom; cout << "Prenom :" << endl; cin>>prenom; cout << "Age :" << endl; cin >> age; SetPersonne(pers[i],nom,prenom,age); } } } } int main() { Personne *p; creer(p,3); return 0; }
Ca compile et ça ne plante pas, mais me connaissant, je ne sais pas si ça ne plantera pas au moment de récupérer les données ^^. Bref, d'une part (je ne suis pas sûr) on m'avait dit de ne jamais mettre de pointeur dans un cin. Ensuite pour ce qui est de la fonction amie, t'as 3 cas de figure. Mais déjà, une petite remarque : "pers[i] = SetPersonne(nom,prenom,age); // car ton object est deja construit tu ne peux pas appelé un autre constructeur" Certes l'objet est déjà créé donc impossible d'appeler à nouveau le constructeur, mais je ne vois pas comment on peut renvoyer l'age, le nom et le prénom avec 1 seule valeur de retour (sauf si tu joues avec les valeurs multiples, mais j'en doute...) Donc pour les 3 cas de figure : - soit effectivement tu déclares la fonction SetPersonne(); amie (si tes attributs sont privés). - soit, comme moi, tu mets tes attributs publics et SetPersonne(); peut alors être une fonction indépendante. - soit tu déclares tout bêtement SetPersonne(); comme membre de ta classe.
(ce qui est en vert est ma réponse à ta question, tout le reste ne sont que des tests et autres, mais je doute que le code marche à 100% si on l'étend).
Cordialement, uaip.
|
|
jeudi 15 janvier 2009 à 03:49:29 |
Re : tableau dans une fonction

gamemonde
|
oui désoler j'avais oublier pers->SetPersonne(....) étant membre de la classe erreur de programmation a la main mais tu as bien résumé tout l'ensemble
|
|
Cette discussion est classée dans : fonction, int, tableau, pers, prenom
Répondre à ce message
Sujets en rapport avec ce message
Tableau de structure [ par tomsawyerbelgique ]
Bonjour suriez-vous me dire comment fait-on pour passer un tableau de structure dans une fonction:struct student { char nom[10]; int nbcot
creer une fonction retournant un tableau [ par billcala ]
j'essaie de créer une fonction qui doit initialiser un tableau d'entiers : le code que je fais est :int mafonction()[8];using namespace std;int mafonc
tableau a double entrée alloué dynamiquement [ par amortlintelligence ]
Voila j'aurais voulu utiliser un tableau (tableau de tableau) dans une fonction. Je pense qu'il faut donc que je le crée dynamiquement avec un code du
REcuperer des donnée d'un fichier binaire vers une tableau de hachage [ par whiteknight ]
Slt j'ai des problemes avec ma fonction load qui me permet de recuperer les données d'un fichier binaire et de les transférer vers un tableau de hacha
Allocation dynamique dans une fonction [ par Veovis ]
Salut,Toujours dans mon projet de TP, j'ai un petit soucis avec l'allocation dynamique dans une fonction. Ce que je voudrais faire c'est quand le tabl
Fonction qui retourne un tableau [ par Kurul1 ]
Bonjour à tous J'ai une classe contenant un tableau a deux dimensions comme variable private Ce que je voudrais c'est une fonction ayant pour param
Tableau en C [ par Mickylord ]
Bonsoir a tous !Voici ma question :J'ai une fonction principale, main(), et une autre fonction tab(). Je voudrais déclarer un tableau dans la fonction
tableau d'entier. [ par gdpasmini ]
Hello !j'ai un petit soucis avec une fonction qui renvoi un tableau en parametre... voila les details :Dans mes fonctions : int * boutonDecodFlux(void
Fonction qui utilise un int* externe pour créer un tableau [ par tibob51 ]
Bonjour je voudrai savoir si il est possible qu'une fonction recoive un pointeur d'entier,créé un tableau dynamiquement puis l'initialise,afin de le r
fonction min max [ par devamos ]
bonjour,j'aimerais des corrections,si vous pouvez m'aider j'ai ecri ces instructions en devc++,,, c'est une fonction qui cherche le max et le min dans
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|