new char -> delete []



  • Hallöle,

    bis jetzt dachte ich eigentlich, dass sowas hier geht:

    char * target = new char[cLang];
    .
    .
    .
    if( target != NULL )
    {
    	delete[]target;
    	target = NULL;
    }
    

    Allerdings kommt bei delete[]target:

    HEAP[name.exe]: Heap block at 02861F30 modified at 02862A87 past requested size of b4f
    Windows has triggered a breakpoint in name.exe.

    This may be due to a corruption of the heap, and indicates a bug in name.exe or any of the DLLs it has loaded.

    😕 😕 😕

    Ohne delete bringt dann aber der nächste Aufruf von char text = new char ... eine Access violation.

    Wo sollte ich ansetzen?

    grüssle 🙂



  • Ich tippe darauf, daß du irgendwo über die Grenzen des reservierten Speichers hinausgeschrieben hast (du hast nur 'cLang' Byte zugewiesen bekommen, alles drumherum gehört jemand anderem - dort hast du nichts zu suchen).



  • CStoll schrieb:

    Ich tippe darauf, daß du irgendwo über die Grenzen des reservierten Speichers hinausgeschrieben hast (du hast nur 'cLang' Byte zugewiesen bekommen, alles drumherum gehört jemand anderem - dort hast du nichts zu suchen).

    Stimmt, danke.

    grüssle 🙂


Anmelden zum Antworten