Je sais que cela ne fonctionnera pas parce que la variable x est détruit lorsque la fonction retourne:de retour des données déclarées en fonction
int* myFunction()
{
int x = 4; return &x;
}
alors comment puis-je retourner correctement un pointeur vers quelque chose que je crée au sein de la fonction , et de quoi dois-je m'occuper? Comment éviter les fuites de mémoire?
J'ai aussi utilisé malloc:
int* myFunction2()
{
int* x = (int*)malloc(sizeof int); *x = 4; return x;
}
Comment vous correctement faire - en C et C++?
Vous avez raison, la réponse est 'myFunction2()' vous devez juste vous souvenir de libérer votre mémoire plus tard. C'est le problème de ne pas avoir un garbage collector – tzenes
Encore une fois, alors que C et C++ partagent de nombreuses fonctionnalités, il y a beaucoup de questions avec des réponses complètement différentes selon la langue. Comment éviter les fuites de mémoire est l'un d'eux, car il est de savoir comment créer quelque chose à l'intérieur d'une fonction ... Dans quelle langue êtes-vous vraiment intéressé? –