begin process at 2012 05 30 04:57:32
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Maths

 > 

tableau dans une fonction


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

Membre Club
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

Membre Club
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


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales