30. november 2005 - 23:12Der er
5 kommentarer og 1 løsning
Problemer med Strings og dynamisk allokering
Jeg får en runtime fejl når min destructor bliver kaldt. Er der nogen problemer med at dynamisk alloker et array af srtings og og delete det igen sener?
jeg har ved lagt koden som giver fejlen her.
//Class.h
#include <iostream> #include <string>
using namespace std;
class Class { public: Class(string array[], int arraySize); void Print(void); ~Class();
private:
int antal; string* MyArray; };
//Class.cpp
#include "Class.h"
Class::Class(string array[], int arraySize) { antal = arraySize;
Problemet med din kode er at du først allokerer plads til arraySize strings, og sætter MyArray til at pege på dette array af strenge, og i næste linie sætter du MyArray til at pege på array, og glemmer dermed det du lige har allokeret. Når du så i destructoren vil delete dit array forsøger du så at delete det array du har i main, og ikke det du har allokeret.
Tak for der. Det gir jo meget mening når man lige tænker over det.
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.