IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Comment utiliser un tableau de pointeurs


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 124
    Par défaut Comment utiliser un tableau de pointeurs
    Salut à vous.
    Je suis entrain d'écrire un programme dans le que j'ai une fonction 'fun qui me renvoie un pointeur un sur tableau. dans ma fonction main, je voudrais exécuter cette fonction plusieurs fois et stocker les résultats de toutes mes simulations. Voici une exemple de bout de code pour illustre ce que je dis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     int* fun(int b){
         int tab[4];
          tab[0]=2*b;
          tab[1]=8-b;
          tab[2]=1;
          tab[3]=6;
     
     int * t=new int;
     t=tab;
     return t; //Je retourne un pointeur sur mon tableau
     
    }
    Dans ma fonction main j’écris ce ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
       int main(){
    int NbreSimulation=5;
    int *pointeurs[NbreSimulation]; // Je declarer un tableau de pointeurs.
    int nbre=4;    
     
    for (int i=0; i<NbreSimulation;i++){
            pointeurs[i]=fun(nbre);
     
    }
     
    // Pour afficher  les valeurs
     for (int i=0; i<NbreSimulation;i++){
            for (int j=0;j<4;j++){
           cout << *(pointeurs[i]+j)<< endl;
            }
     }
     
    return 0;
    }
    J'aimerais que ma mon tableau de pointeurs, chaque case pointeurs[i] pointe vers tout les éléments de mon tableau 'tab'

    Merci de votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 757
    Par défaut
    Ta fonction fun est un peu foutraque ... mais il y a de l'idée

    1. Tu retournes une variable locale ... qui sera détruite à la fin de l'appel
    2. Tu crées un tableau et ensuite tu l’écrases avec une variable locale [une fuite de mémoire]



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     int* fun(int b){
         int* t = new int[4];
     
         tab[0]=2*b;
         tab[1]=8-b;
         tab[2]=1;
         tab[3]=6;
     
         return t; // don't forget delete[] t
    }

  3. #3
    Membre Expert Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Par défaut
    Bonjour
    En C++, on aurait retourné un std::vector<int> (ou un std::array<int, 4>).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    std::vector<int> fun(int b){
         std::vector<int> tab(4);
     
         tab[0]=2*b;
         tab[1]=8-b;
         tab[2]=1;
         tab[3]=6;
     
         return tab;
    }

Discussions similaires

  1. Réponses: 6
    Dernier message: 26/01/2008, 10h37
  2. [Tableaux] Comment utiliser un tableau dans ce cas
    Par Equinoxe5 dans le forum Langage
    Réponses: 1
    Dernier message: 19/08/2007, 22h13
  3. utiliser un tableau de pointeur
    Par pepsister dans le forum GTK+ avec C & C++
    Réponses: 30
    Dernier message: 27/04/2007, 23h17
  4. Réponses: 3
    Dernier message: 20/12/2006, 17h13
  5. Réponses: 4
    Dernier message: 24/08/2005, 14h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo