Utilisation delete

Fermé
hof - 30 janv. 2009 à 23:29
 loupius - 31 janv. 2009 à 00:36
Bonjour,

j'ai une fonction qui recoit un char * en paramètre, dois je faire un delete a la fin de celle-ci, et si je le fait est ce que dans la fonction appelante ca marchera tjs ????

en voici un version simplifié

...
char * s;
maFonction(s);
...
void maFonction(char * s)
{
...
delete s; //dois je le faire?????
}

1 réponse

Pourquoi faire un 'delete'?
Sans doute parce qu'il y a un 'new' et où se trouve le 'new'?
La réponse est simple: le 'new' se trouve là où se trouvera le 'delete'.
En clair, on devrait toujours trouver le couple 'new-delete' dans la même fonction.
Evidemment il y a toujours des exceptions. Le cas le plus courant est celui de la fonction qui retourne une chaîne de caractères; celle-ci est allouée dans la fonction mais devra être détruite par l'appelant.
Ai-je été assez clair?
Bonne continuation.
0