[cpp] tab 2D de ptr

Voir le sujet précédent Voir le sujet suivant Aller en bas

[cpp] tab 2D de ptr

Message  NicoM le Ven 18 Sep 2009, 17:23

Hellooooooooo Very Happy

Comment retourne-t-on un tab 2D de ptr?

En gros, je dois retourner un tab de ce genre :
Code:
  type* tab [int][int]


Merci Very Happy

NicoM

Nombre de messages : 116
Prénom : Nicolas
Statut : étudiant 3ieme Industrielle
Localisation : Bascule
Date d'inscription : 07/12/2007

Revenir en haut Aller en bas

Re: [cpp] tab 2D de ptr

Message  mcd le Ven 18 Sep 2009, 17:44

Est-ce que tu sais le faire avec un tableau 1D ?
Et en quoi ça te parait foncièrement différent avec un tab 2D ?

mcd

Nombre de messages : 1548
Prénom : Marco
Statut : prof
Localisation : Molenbeek
Date d'inscription : 29/09/2006

http://mcd.namok.be

Revenir en haut Aller en bas

Re: [cpp] tab 2D de ptr

Message  smb le Ven 18 Sep 2009, 17:58

NicoM a écrit:Hellooooooooo Very Happy

Comment retourne-t-on un tab 2D de ptr?

En gros, je dois retourner un tab de ce genre :
Code:
  type* tab [int][int]


Merci Very Happy

En fait, en c++, le retour d'un tableau comme tu le souhaites dans le code que tu présentes n'est pas réalisable. Si le tableau est déclaré dans ta fonction ou méthode comme tu le présentes dans ce code, la seule chose que tu puisses retourner est un type * * c'est-à-dire un pointeur vers le 1ier élément du tableau. Si ce tableau est local à la fonction ou méthode, bonjour les dégats !!!

Je te conseille vivement d'utiliser le vector de la stl dans ta fonction ou méthode. Le retour serait donc :

Code:
 vector < vector < type * > >

Dans ce cas, tout le tableau est recopié sur la "pile" correctement car vector dispose d'un constructeur par copie.

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

Re: [cpp] tab 2D de ptr

Message  nvs le Ven 18 Sep 2009, 20:31

NicoM a écrit:[...] un tab de ce genre :
Code:
  type* tab [int][int]
sans vouloir ergoter, d'autant plus que la réponse de stéphan monbaliu est presque parfaite, que signifient les int qui apparaissent entre les crochets ? s'il s'agit d'une référence à la notion de tableau de taille variable du c99, je tiens à préciser qu'elle est exclue du c++98. c'est bien dommage Sad

et sinon, pour le presque de la réponse de stéphan monbaliu :
smb a écrit:Si le tableau est déclaré dans ta fonction ou méthode comme tu le présentes dans ce code, la seule chose que tu puisses retourner est un type * * c'est-à-dire un pointeur vers le 1ier élément du tableau.
j'écrirais plutôt que la seule chose que tu puisses retourner est un type * * * c'est-à-dire un pointeur vers le 1ier élément du tableau. mais je peux me tromper... et c'est tout compte fait ici de l'ordre du détail Wink

quoi qu'il en soit, fini de jouer et de perdre son temps avec des tableaux à la c ! suis les bons conseils de m. monbaliu.






_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [cpp] tab 2D de ptr

Message  pbt le Ven 18 Sep 2009, 22:42

Simplement pour rappel. En c++ lorsque l'on crée un tableau comme variable locale, il est créé sur la pile et pas sur le tas ?

_________________
smartq.namok.be · faq ·  · IRC / irc.freenode.net #esi · blog.namok.be
style #pbt {heigth:189cm; weight:79kg; eye-color:#524000; hair:very short; dead pixels: some; }

pbt
Admin

Nombre de messages : 4862
Age : 45
Prénom : Pierre
Statut : prof
Localisation : La cité des géants
Date d'inscription : 24/11/2005

http://esi.namok.be

Revenir en haut Aller en bas

Re: [cpp] tab 2D de ptr

Message  nvs le Ven 18 Sep 2009, 23:14

pbt a écrit:Simplement pour rappel. En c++ lorsque l'on crée un tableau comme variable locale, il est créé sur la pile et pas sur le tas ?
oui, sur la pile, s'il s'agit d'un tableau automatique, genre :
Code:
void f()
{
    int tab[] = {1, 3, 6};
    ...
}
et non, sur le tas, s'il s'agit d'un tableau dynamique comme :
Code:
void f()
{
    int * tab = new int [3];
    tab[0] = 1;
    tab[1] = 3;
    tab[2] = 6;
    ...
}
mais il peut aussi se trouver dans le segment de données avec :
Code:
void f()
{
    static int tab[] = {1, 3, 6};
    ...
}






_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [cpp] tab 2D de ptr

Message  NicoM le Ven 18 Sep 2009, 23:23

J'ai très bien comprit le truc du tableau qui peut être vu comme un pointeur etc...
Mon soucis c'est que la, j'ai un tableau de pointeur d'objet à 2D.

Dans mon code, il s'agit d'un attribut privé de ma classe, un "type* tab[5][5]".
Je voudrais juste le retourner, et *** ne marche pas malgré que je ferai ** avec un tab 1D.

Je verrai les vector sinon, c'est pas grave Smile

NicoM

Nombre de messages : 116
Prénom : Nicolas
Statut : étudiant 3ieme Industrielle
Localisation : Bascule
Date d'inscription : 07/12/2007

Revenir en haut Aller en bas

Re: [cpp] tab 2D de ptr

Message  nvs le Ven 18 Sep 2009, 23:28

un peu comme pour Newu_ : sans bout de code ni message d'erreur, ça ne le fera pas... bien que je lise dans la mousse séchée de chimay, je suis incapable de déboguer en aveugle Razz







_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [cpp] tab 2D de ptr

Message  NicoM le Ven 18 Sep 2009, 23:32

J'en parlerai mieux dimanche, je ne suis pas chez moi ni devant mes bouts de codes.
Merci beaucoup quand même et bonne soirée Smile

NicoM

Nombre de messages : 116
Prénom : Nicolas
Statut : étudiant 3ieme Industrielle
Localisation : Bascule
Date d'inscription : 07/12/2007

Revenir en haut Aller en bas

Re: [cpp] tab 2D de ptr

Message  nvs le Ven 18 Sep 2009, 23:38

faisons comme ça alors.

bon week-end Wink










_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [cpp] tab 2D de ptr

Message  Contenu sponsorisé Aujourd'hui à 20:42


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum