Memory leak - c++

De ce imi da la rulare memory leak in aceasta secventa?

Constructor cu parametri
	Cladire(int an, char *loc, float p, int n, int *v) : anConstructie(an)
	{
		this->localitate=new char[strlen(loc) + 1];
		strcpy(this->localitate, loc);

		pret = p;
		nrCamere = n;
		vectorSuprafata=NULL;
		setVectorSuprafata(v, n);
	}

Eu vad o problema aici:

Cum nu ai GC (Garbage Collection) automat va trebui sa te ocupi de dealocarea memoriei respective la destructorul clasei respective cu free.
Acum cand obiectul tau dispare(?) zona de memorie string ramane alocata/pierduta.

O varianta ar fi sa definesti $this->localitate ca fiind un char[100] (ceva mare care sa acopere situatia ta) si atunci se va elibera automat cand se elibereaza obiectul respectiv. In cazul asta fii atent la probleme de suprascriere de memorie, cel mai ok e sa stabilesti o limita maxima la numarul de caractere copiate.

Asta, sau sa folosesti delete in destructor sa dezaloci memoria.