Je suis nouveau à C++ et j'ai quelque chose pas clair:Quelque chose peu claire avec l'opérateur supprimer
#include <iostream>
using namespace std;
double* foo(void)
{
double* b = new double[100];
return b;
}
int main()
{
double* a = foo();
delete [] a;
return 0;
}
Y at-il quelque chose de mal avec ce code? Je veux dire si la façon dont j'utilise l'opérateur supprimer est correcte? J'affecte le pointeur b qui pointe vers la mémoire allouée dans la fonction foo pour pointer vers un foo extérieur, puis-je libérer de la mémoire au moyen de delete [] a dans main? Je n'ai aucune idée comment le compilateur calcule le nombre d'octets à libérer lors de l'exécution de delete []. Merci
duplication possible de [Comment delete \ [\] "connait-il" la taille du tableau d'opérandes?] (Http://stackoverflow.com/questions/197675/how-does-delete-know-the-size- of-the-operand-array) – Mat