Debug-Assertion fehlgeschlage

Ich begegne immer wieder diesem"Debug assertions failed!" Fehler beim Ausführen meines Programms im Debug-Modus. Ich habe versucht, diesen Fehler auf der Visual C ++ - Website nachzuschlagen, aber die Erklärungen sind für mich zu ausführlich und haben keine Ähnlichkeit mit dem, was ich für das Problem vermutet habe.

Ich habe meinen Code durchgesehen und den Punkt eingegrenzt, an dem der Fehler auftritt. Es scheint in dem Teil des Codes zu passieren, in dem ich eine ganze Reihe von Heap-Arrays manuell lösche, bevor der Computer zum nächsten Teil des Programms wechselt. Wenn ich den Abschnitt auskommentiere, der die alten Heap-Arrays freigibt, läuft das Programm einwandfrei.

Eine Idee, was hier los ist? Meine Programmierkenntnisse sind noch relativ einfach.

Vielen Dan

Ich verwende Visual C ++ 2008.

Mehr Informationen

Der Haltepunkt wird an diesem Codeblock ausgelöst:

 void operator delete(
    void *pUserData
    )
{
    _CrtMemBlockHeader * pHead;

    RTCCALLBACK(_RTC_Free_hook, (pUserData, 0));

    if (pUserData == NULL)
        return;

    _mlock(_HEAP_LOCK);  /* block other threads */
    __TRY

        /* get a pointer to memory block header */
        pHead = pHdr(pUserData);

         /* verify block type */
        _ASSERTE(_BLOCK_TYPE_IS_VALID(pHead->nBlockUse));//<---- break point triggers 

        _free_dbg( pUserData, pHead->nBlockUse );

    __FINALLY
        _munlock(_HEAP_LOCK);  /* release other threads */
    __END_TRY_FINALLY

    return;
}

Dieser Code stammt aus der Registerkarte: dbgdel.cpp

Der Abschnitt meines Codes, den ich "eingegrenzt" habe, der dieses Problem verursacht, lautet wie folgt:

delete [] topQuadanglesPositions;
delete [] fourClamps;
delete [] precaculatedClamp1;
delete [] precaculatedClamp2;
delete [] precaculatedClamp3;
delete [] precaculatedClamp4;
delete [] area;
delete [] hullConfiguration;
delete [] output;
delete [] prunedListClamp1;
delete [] prunedListClamp2;
delete [] prunedListClamp3;
delete [] prunedListClamp4;
delete [] numValidLocations;

Wenn ich diesen Abschnitt auskommentiere, läuft das Programm einwandfrei.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage