sinon, tu peux faire :
int* fonction(int x)
{
int *t;
t=new int;
return t;
}
pas tres utile bien sur, cette fonction ! mais bon je l´explique :
int* fonction(int x)
--> tu lui donne un x, elle te renvoie l´ADRESSE d´un int.
int* t; --> pointeur sur int ( donc une adresse)
t = new int;
--> cherche en mémoire une place pour ranger un int. ça te trouve ça, et donc ça te renvoie une adresse, que tu récuperes dans t
- t veut dire " a l´adresse t"
et donc :
- t = x --> a l´adresse t, on met x
donc tu as créé qq part, une case de mémoire, tu as mis x dans cette case, et t te dit ou elle est.
tu retourne t;
a la sortie de fonction, t est détruit, mais l´adresse retournée est encore valide, et la zone mémoire réservée est toujours valide.
pour la libérer, tu fais :
delete t;
bienvenue dans le monde de l´allocation dynamique 