Hey, mam następujący problem:
Stworzyłem klasę, w której deklaruję wskaźnik w celu stworzenia dynamicznej tablicy.
Jak wiadomo, gdy będę chciał usunąć obiekt takiej klasy to w destruktorze powinienem zwolnić zaalokowaną pamięć.
Problem w tym, że nie zawsze jest konieczna taka alokacja (czasami wskaźnik wskazuje na nic) i nie mogę usunąć pamięci, jeśli wcześniej jej nie zaalokowałem.
Przykładowo klasa wygląda to tak:
class klasa
{
public:
double* wsk;
void tworz_tablice(int i){wsk = new double[i];} //funkcja opcjonalna
~klasa(){delete[] wsk;} //a co jeśli nie będzie zaalokowana pamięć?!?
}
Czy da się jakoś sprawdzić czy była wcześniej alokowana pamięć?
Z góry dziękuję za pomoc w rozwiązaniu mojego dylematu.