Pointeurs vers pointeurs: toujours un tableau multidimensionnel?
Bonjour,
En développant un webservice avec Gsoap, je me suis retrouvé face a quelque chose de nouveau pour moi (en même temps je fais pas souvent de c++), un pointeurs vers un pointeurs que voici:
Code:
1 2 3 4 5
| class SOAP_CMAC Sitet_USCOREsiteArray
{
public:
Site__t_USCOREsite **__ptr;
[...] |
En cherchant un peu, j'ai pu trouver comment accéder aux différentes valeurs inclues dans ce pointeur vers pointeur. Voici mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11
| T_USCOREsiteControllerBindingProxy mySite_SiteWebService;
Site__getActionSiteCloudResponse siteWithActionCloud;
int i;
Site__t_USCOREsite site;
mySite_SiteWebService.getActionSiteCloud("TO_SYNC", siteWithActionCloud);
for (int i = 0; i < siteWithActionCloud.return_->__size; i++)
{
site=*(siteWithActionCloud.return_->__ptr[i]);
cout << "my cell: " << site.f_USCOREsite_USCOREid << endl;
} |
Mon code marche c'est le principale, mais j'aimerai bien maintenant comprendre cette notion!:lol:
En fait ce que je ne comprends pas c'est ce qui fait que __ptr est un tableau et que je peux donc appeler __ptr[i]. Comme je l'avais compris, __ptr est une adresse pointant elle même sur une autre adresse dont la valeur contient mon objet? Mais bon, je vois bien que mon raisonnement ne tiens pas debout parce que dans ce cas *(siteWithActionCloud.return_->__ptr[i]) devrait me retourner la valeurs de __ptr, c'est a dire une adresse, or la j'ai bien la valeur de mon deuxième pointeur, c'est a dire mon objet. Est ce le fait d'utiliser __ptr[i] qui "saute" le premier pointeur? Une variable de type monObj **__obj sera t elle toujours un tableau multidimensionnel?
Bref, désolé si je suis un peu confus c'est justement pour ne plus l'être que je pose ces questions. Si vous avez des indication pour m'éclairer ou de bons tuto pour comprendre la notion, je suis preneur!
Merci.