Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [c++] delete[] kan geen geheugen vrijgeven (https://forum.scholieren.com/showthread.php?t=735962)

Dr HenDre 30-01-2004 19:37

[c++] delete[] kan geen geheugen vrijgeven
 
Ik heb een dynamische array gemaakt genaamd cycle, en die wil ik na gebruik weer netjes vrijgeven, en dat wil niet :s

Code:

        int * cycle;
        cycle = new int[j-i];

        int cycleCounter=0;
       
        for(int x=i; x<=j; x++)
        {
                n = x;
                while(n > 1)
                {
                        if(n % 2)
                        {
                                n == x ? counter += 2 : counter++;
                                n = 3*n+1;
                        }
                        else
                        {
                                n == x ? counter += 2 : counter++;
                                n /= 2;
                        }
                }
                cycle[cycleCounter] = counter;
                cycleCounter++;
                counter=0;
        }

        cout<<endl<<kleinste(cycle)<<endl;
        delete[] cycle;

en als ik dat uitvoer krijg ik een error bij delete[]. Als ik dat eruithaal dan is er nix aan de hand.

Dit is wat ik krijg:
http://members.lycos.nl/hendre/error.jpg

Als ik dit in release mode compile, link en uitvoer is er nix aan de hand, maar als ik het in debug mode doe dan krijg ik een error. Ik ben dus bang dat ie geheugen wist waar hij geen toegang tot heeft. Netzoals dat als je in release mode buiten een array schrijft en dat print, dat je dan rare waarden krijgt maar geen error. Terwijl je in debug mode wel een error krijgt.

Iemand enig idee??

Screaming Slave 31-01-2004 09:08

waarom gebruik je hier uberhaupt een int pointer en niet gewoon een integer?

eddie 31-01-2004 10:19

afaik is het gewoon
delete cycle

(of delete *cycle, of delete &cycle, het is alweer een tijdje geleden...;))

Dr HenDre 31-01-2004 10:25

ik heb het al, ik schreef idd buiten mn array

cycle = new int[j-i];
for(int x=i; x<=j; x++)

is te veel van het goede.

en @ screaming slave:
Omdat j en i door de gebruiker worden opgegeven, en kan varieren van 0 tot 1.000.000.000.
Dus dan is een dynamische array wel zo handig :)


Alle tijden zijn GMT +1. Het is nu 06:56.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.