Problem mit dynamischem array



  • Folgendes Problem fesselt mich seit einigen Stunden:
    Bin auf der Suche nach einer Lösung zu folgendem Problem:
    Ich habe ein Array:

    char *pbDestination = new char[length];
    

    Dieses Array hat eine flexible länge je nachdem wie viele Zeichen eingegeben wurden.
    Je nachdem was zuvor für Parameter angegeben wurden, die dann zusammen mit dem array einer fünktion übergeben wurden, muss dieses Array eine bestimmte größe haben (=length), in die dann via

    strncpy(pbDestination , (const char*)m_InputData, length);
    

    die jeweiligen zeichen kopiert werden.
    Das Problem hierbei für mich, ist das das Array
    dann zwar schon die entsprechende Größe je nach Parameter hat (supa):
    pbDestination 0x00422e30 "asdfghjklöäyxcvb00000"
    jedoch nachdem die funktion verlassen wurde sieht man das:
    + pbDestination 0x00422e30 "˜Ò£ýæŽiV‰÷f[©Á00000"

    ⚠ --> Die Nullen (000000) müssen weg, nur wie?????

    Wie kann man das hinpfrimeln?

    Vielen Dank für euer aller Hilfe!
    Viele Grüße! 🙂

    (nachdem der erste thread verpfuscht wurde hier ein neuer)



  • Wäre nett, wenn du etwas mehr zum Drumherum schreiben würdest. Woher kommt length? Was steht in m_InputData? Was spuckt ein "cout<<pbDestination;"-Aufruf nach dem Kopieren aus?



  • Hi,

    mir fällt da gleich folgendes ein

    strncpy(pbDestination,strtok(m_InputData,"0"),sizeof(m_InputData));;
    

    strtok schneidet ab 0 alles ab und gibt einen char* zurück;

    jedoch nachdem die funktion verlassen wurde sieht man das:

    pbDestination innerhalb der Funktion deklariert? delete zu früh?

    grüße


Anmelden zum Antworten