1 2 3 4 5 6 7
| double** creer_tableau(int width,int height)
{
double **tableau = new double * [height];
for(int i=0;i<height;i++)
tableau[i] = new double[width];
return tableau;
} |
double **tableau = new double * [height];
Crée un tableau de pointeur sur double et met son adresse dans tableau
1 2
| for(int i=0;i<height;i++)
tableau[i] = new double[width]; |
Crée des tableaux de double et met leur adresse dans chaque élément du tableau de pointeur sur double. Attention, une erreur de } dans le code original
renvoie la valeur du pointeur sur l'ensemble de la structure de données. return ** tableau renvoie le premier élément double du premier tableau tableau[0][0]
Ce type de code a l'avantage de ne créer que des tableaux à une dimension ce qui les rends plus faciles à traiter en cas de passage en paramètre de fonction puisqu'il n'est pas nécessaire de spécifier leur dimension. De plus , ceci permet d'utiliser la syntaxe tableau[][]. Le prix à payer est un tableau de pointeurs supplémentaires.
Accessoirement, si tu n'as pas l'intention de modifier individuellement la longueur des tableaux de double, il est plus simple pour le delete d'allouer directement un seul grand tableau de double. Si tu veux plus de détails, dis le.
Partager