Fehler mit strlen



  • Hallo allerseits!

    Mein Programm stirbt immer wenn ich im folgenden Code die funktion strlen aufrufe.
    Ich lande auch immer mit dem Debugger da, kann aber keinen Fehler erkennen....
    m_vDictionary ist ein Vektor. Ich hab auch schon sizeof() durch die Zahl 2 ersetzt weil ich nicht sicher war ob das richtige ergebnis kommt....

    nsVector<word_struct> m_vDictionary;
    struct word_struct
      {
    	  const char * szSuchWort;
    	  const char * szNext_position;
    	  const char * szEnd_position;
      };
    
    const char * words[] =
    {
    "style=\"","<style ","</style>"
    };
    
    word_struct wd;
    int iCounter = sizeof(words)-1;
    int iLength;
    
    while(iCounter >= 0)
    {
    	iLength = strlen(words[iCounter])-1;
    	wd.szSuchWort = words[iCounter];
    	wd.szNext_position = &wd.szSuchWort[0];
    	wd.szEnd_position = &wd.szSuchWort[iLength];
    	m_vDictionary.Add(wd);
    	iCounter--;
    }
    

    Schon mal danke im voraus!



  • Also wenn ich sizeof(words) durch 2 ersetze, klappt das bei mir. sizeof(words) liefert auch nicht die Anzahl der Elemente im Array zurück, sondern die Gesamtgröße. Und die ist sizeof(words[0])+sizeof(words[1])+sizeof(words[2]).


  • Mod

    int iCounter = sizeof words / sizeof words[0] - 1;
    

Anmelden zum Antworten