L'opérateur
new du C++ est beaucoup plus performant que la fonction
malloc du C. Lorsque vous utilisez cette syntaxe :
TYPE ptr** = new TYPE*[taille*sizeof(TYPE)]; // >-- FAUX
Par exemple,
// Pour constuire dynamiquement un tableau de 100 entiers
int ptr** = new int*[100*sizeof(int)]; // >-- FAUX
vous construisez non pas un tableau de 100 "lignes", mais une tableau de 100 lignes multipliées par la taille d'un entier. En fait, l'opérateur
new connait la taille des éléments du tableau grâce au type du constructeur :
TYPE ptr** = new TYPE*[taille]; // >-- CORRECT
Ici, c'est le second TYPE qui détermine la taille des éléments du tableau. La taille détermine le nombre d'éléments du tableau.
Bien sûr, n'oubliez pas de faire
delete.