Avatar billede hobz Nybegynder
03. marts 2007 - 18:49 Der er 3 kommentarer og
1 løsning

C++ Heap corruption

Jeg får meddelelsen "heap corruption detected" når jeg afvilker http://toadz.dk/source.cpp i Visual studio C++.

Hvad er heap corruption? Hvor er fejlen i min kode, og hvordan retter jeg den?

Koden er en skole-øvelse, og har til formål at lave et dynamisk array.
Jeg har lokaliseret årsagen til fejlmeddelelsen; "delete[] pArray;" og har lagt kommentaren "// Nedenstående giver HEAP CORRUPTION DETECTED i visual c++" over denne linje.
Avatar billede bertelbrander Novice
03. marts 2007 - 19:00 #1
Du har:
    void DynArray::expand()
    {
        // Increment array size.
        setSize(getSize()+1);
        arrayItemType* pNewArray = new arrayItemType[getSize()];

        // Copy the original array to a new array.
        for (int i = 0; i < getSize(); i++) { // The original array size. Equal to i <= getSize()-1
            pNewArray[i] = pArray[i];

Så vidt jeg kan se er pArray kun (getSize() - 1) stort på det tidspunkt.
Avatar billede hobz Nybegynder
03. marts 2007 - 19:03 #2
Det er fandme klasse det der. Many thanks!
Svar for point.
Avatar billede bertelbrander Novice
03. marts 2007 - 19:11 #3
Jeg samler ikke på point.
Avatar billede hobz Nybegynder
29. juni 2007 - 21:26 #4
Lukket.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester