C++ probleme
Résolu/Fermé9 réponses
Je n'irais pas jusqu'à comprendre tout le code... car
cette boucle ne peut fonctionner, car si par malheur, on rentre dedans... on n'en sort pas !!!
while (t != NULL) { t[i].afficher(); i++; }
cette boucle ne peut fonctionner, car si par malheur, on rentre dedans... on n'en sort pas !!!
c'est normale parceque j'ai pas posser tout le code ,mais mon prob c'est que je veut programmer une fonction qui peut afficher un tableaux d'objets (les elements du tableaux son des objets) son savoir le nembre des elements du tableaux passé en paramétre ,
et merci d'avance
et merci d'avance
Lorsque l'on passe un tableau en paramètres, il y a 2 solutions pour que la fonction puisse s'y retrouver:
- passer aussi le nbre d'éléments du tableau,
- ajouter un élément particulier au tableau qui permettra à la fonction de détecter la fin du tableau; effectivement s'il s'agit d'un tableau de pointeurs, il est logique d'ajouter un élément NULL (d'où le test: while (t) ).
- passer aussi le nbre d'éléments du tableau,
- ajouter un élément particulier au tableau qui permettra à la fonction de détecter la fin du tableau; effectivement s'il s'agit d'un tableau de pointeurs, il est logique d'ajouter un élément NULL (d'où le test: while (t) ).
j'ai un tableaux des pointeurs je vais essayer d'ajouter un NULL a la fin dutableaux et voir si ca matche
merci
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionclass Objet { ... }; void fonction (Objet* tt[]) { int i = 0; while (tt[i]) { ... i++; } } int main () { Objet* a = new Objet; Objet* b = new Objet; Objet* t[3]; t[0] = a; t[1] = b; t[2] = (Objet*)0; // Ajout d'un élément NULL fonction (t); return (0); }
On peux écrire: 't[2] = 0;' le compilateur ne doit pas râler car c'est juste, mais il est plus correct d'écrire 't[2] = (Objet*)0;' dans les deux cas on donne la valeur zéro (ou NULL) au 3ème élément du tableau/
L'exemple suivant est complet et doit être compilable.
L'exemple suivant est complet et doit être compilable.
#include <iostream> using namespace std; class Objet { public: Objet(int v) { val = v; } int val; }; void fonction (Objet* tt[]) { int i = 0; while (tt[i]) { cout << "fonction: val = " << tt[i]->val << endl; i++; } } int main(int argc, char *argv[]) { Objet* t[3]; t[0] = new Objet(2); t[1] = new Objet(5); t[2] = (Objet*)0; fonction (t); return (0); }