31. oktober 2001 - 10:15Der er
14 kommentarer og 3 løsninger
ikke flere NEW end DELETE
jeg har en funktion hvor jeg returnerer noget som bliver oprettet med new. hvordan kan jeg sørge for at dette bliver slettet fra hukommelsen igen, når jeg har returneret det?
->>> SOURCODE <<<- string *substring(int startpos, int endpos) {
når jeg bruger return ryger jeg jo ud af min funktion igen, og har dermed ingen mulighed for at bruge delete. nogen forslag til hvad man skal gøre i sådan en situation?
Lav en manager som du kan kalde når du har brug for memory. Denne skal så sørge for at frigive hukommelsen igen, enten ved explicit kald eller ved programslut.
Selvfølgelig kan man det, mit forslag, med at bruge en manager, er for at holde styr på hukommelsen, så der ikke opstår tvivl om hvornår hukommelsen skal frigives/hvor ansvaret ligger...
=> wisen Du har ganske ret, der er selvfølgelig mere arbejde ved denne metode... Det kan selvfølgelig heller ikke betale, hvis det kun er dette ene tilfælde!
jeg har selv løst problemet ved at lave min substring funktion, så den ikke returnerer en pointer, men i stedet returnerer et nyt objekt af typen string.
tak for de gode input.
Synes godt om
Ny brugerNybegynder
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.