Certo ... sono variabili "automatiche".Originariamente inviato da UltraBeginner
int pippo()
{
int a=4,b=5;
return a + b
}
In questo caso dopo l esecuzione di pippo a e b vengono distrutti.
La variabile 'c' pure lei è "automatica", quindi viene "distrutta" al termine della funzione.Originariamente inviato da UltraBeginner
char * pippo(char * p)
{
char *c;
c= new char[strlen(p)]
strcpy(c,p);
return c;
}
Nel secondo caso quando chiamo pippo la memoria allocata da c= new char[strlen(p)] non viene distrutta giusto?
Quello che non viene distrutto è ovviamente il blocco di memoria allocato (che non c'entra nulla con la funzione e le variabili) e di cui fai ritornare il puntatore.
Tra l'altro dovresti allocare 1 carattere in più (strlen(p)+1) perché non hai allocato spazio per il carattere nullo.
Questo c'entra relativamente poco con C++ (solo perché hai usato new invece di una malloc). Questo concetto vale in generale.Originariamente inviato da UltraBeginner
Scusate se la domanda vi sembra banale, ma sto studiando il C++ venendo dal C e sto trovando certi concetti veramente rognosi.