Urgent pb C++

j'ai un soucis avec mon code

mon .h
const int NB_WARNING = 14
std::string _errorLevel[NB_WARNING]

mon .c

....
for (int i=0;i<NB_WARNING;i++){
if ((_errorLevel[i]).length() == 0) {
_errorLevel[i]="test";
cout << i << _errorLevel[i];
}
}

le probleme c'est que mon tableau est toujours vide meme apres l'affectation
pourquoi ?

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. merci a tous pour votre aide

    le code etait bon mais ma methode de trace n'acceptait par les string mais uniquement les char *
    on ne voyais rien a la compil ...
    1. merci a tous pour votre aide

      le code etait bon mais ma methode de trace n'acceptait par les string mais uniquement les char *
      on ne voyais rien a la compil ...
      1. Contributeur
        string _errorLevel[i]=new string("test");
        1. normal

          string _errorLevel[i]= // attend un objet de type string

          new string("test"); // est un string* (pointeur sur un objet de type string)

          donc soit tu écrit

          string _errorLevel[i]=string("test");

          soit tu changes

          1) std::string _errorLevel[NB_WARNING]
          en
          std::string* _errorLevel[NB_WARNING]
          2)cout << i << _errorLevel[i];
          en
          cout << i << (*_errorLevel[i]);
          3) à la fin du prg tu détruit les objets alloués avec new comme c
          ceci:
          for (int i=0;i<NB_WARNING;i++)
          if (_errorLevel[i]!=NULL) {
          delete _errorLevel[i];
      2. si je mets :

        _errorLevel[i]=new string("test");

        cela ne compile
        pas
        1. Faut mettre un S majuscule et aussi faire #include "string.h"
        2. @grdTonioHardwarej'ai deja un include mais de ce type
          #include <string>

          et dans ce programme tout les string sont utilise avec un petit s
          les varialbles sont declarees
          string toto;
          toto = "coucou";
          et il n'y a pas de probleme
        3. @ririok c quoi l'erreur exacte.

          sinon tu utilise les listes de la STL pour faire ton tableau ( doublement chaîné c'est mieux ).
      3. supprime ça à mon avis:

        if ((_errorLevel[i]).length() == 0) {
        1. le test est bon je passe dans la boucle
      4. c koi ce std:: qui traine ???
        en plus si t'utilise la classe string je te conseil de faire un new.
        sinon utilise le char * ca passe mieux.

        Bonne prog !!
        @++ !!!