OVH Cloud OVH Cloud

Parcourrir un tableau

5 réponses
Avatar
Olivier Sarda
Posté le: Jeu Mai 13, 2004 13:59 Sujet du message: Parcourrier un
tableau

--------------------------------------------------------------------------

Bonjour
je recherche a parcourir un tableau de structure
au lieu d'uliser le traditionnel for (int i=nb,i<nb++,etc....)

je fais

Code:

while(pAbrev){
ShowMessage(pAbrev->_Symbol);
pAbrev++;
}




ma ciondition d'arret plante voyez pourquoi
quel doit etre le test ?

Compile avec C++Builder 6 pro

merci
_________________
Cordialement,
Sarda Olivier

5 réponses

Avatar
Marc
"Olivier Sarda" wrote :

je recherche a parcourir un tableau de structure
au lieu d'uliser le traditionnel for (int i=nb,i<nb++,etc....)


Tu veux dire for(int i=0;i<nb;++i) peut-être ?

while(pAbrev){
ShowMessage(pAbrev->_Symbol);
pAbrev++;
}


pourquoi pAbrev se mettrait-il soudain à valoir 0 ? Je suppose que
pAbrev est un pointeur pointant initialement vers le début de ton
tableau. Alors il faudrait plutôt quelque chose comme :

le_type* la_fin=pAbrev + taille_tableau
while(pAbrev<la_fin) {
ShowMessage(pAbrev->_Symbol);
++pAbrev;
}

Mais tu ferais mieux d'apprendre à utiliser std::vector et les
itérateurs.

Avatar
Olivier Sarda
j'ai essaye cela sans grand success

TAbreviation * pEnd= pAbrev+sizeof(pAbrev);

while(pAbrev<pEnd){
ShowMessage(pAbrev->_Symbol);
pAbrev++;
}

"Marc" a écrit dans le message de news:
c7vp0g$vs3$

je recherche a parcourir un tableau de structure
au lieu d'uliser le traditionnel for (int i=nb,i<nb++,etc....)


Tu veux dire for(int i=0;i<nb;++i) peut-être ?

while(pAbrev){
ShowMessage(pAbrev->_Symbol);
pAbrev++;
}


pourquoi pAbrev se mettrait-il soudain à valoir 0 ? Je suppose que
pAbrev est un pointeur pointant initialement vers le début de ton
tableau. Alors il faudrait plutôt quelque chose comme :

le_type* la_fin=pAbrev + taille_tableau
while(pAbrev<la_fin) {
ShowMessage(pAbrev->_Symbol);
++pAbrev;
}

Mais tu ferais mieux d'apprendre à utiliser std::vector et les
itérateurs.



Avatar
Marc
"Olivier Sarda" a écrit :

TAbreviation * pEnd= pAbrev+sizeof(pAbrev);

while(pAbrev<pEnd){
ShowMessage(pAbrev->_Symbol);
pAbrev++;
}


Il faut remplacer sizeof(pAbrev) par le nombre d'éléments de ton
tableau. Je ne m'étais pas rendu compte que le mot « taille » pouvait
être ambigu dans mon post précédent.

Avatar
Jean-Noël Mégoz
"Marc" a écrit dans le message de
news:c7vqer$vs3$

TAbreviation * pEnd= pAbrev+sizeof(pAbrev);

while(pAbrev<pEnd){
ShowMessage(pAbrev->_Symbol);
pAbrev++;
}


Il faut remplacer sizeof(pAbrev) par le nombre d'éléments de ton
tableau. Je ne m'étais pas rendu compte que le mot « taille » pouvait
être ambigu dans mon post précédent.


Je suis pris d'un doute en lisant cette conversation...
Quand on fait pointeur++, la valeur de "pointeur" augmente de 1, ou de la
taille des éléments pointés dans le tableau ?


Avatar
Jean-Marc Bourguet
"Jean-Noël Mégoz" writes:

Je suis pris d'un doute en lisant cette conversation... Quand on
fait pointeur++, la valeur de "pointeur" augmente de 1, ou de la
taille des éléments pointés dans le tableau ?


De la taille des elements pointes.

A+

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org