De plus, std::array peut éviter des problèmes si l'on connait les dimensions du tableau
à la compilation, mais, si cette taille n'est connue qu'à l'
exécution(et ce sera souvent le cas), nous devons -- de toutes façons -- passer par des tableaux dont la taille est gérée dynamiquement. Dans le meilleurs des cas, on utilisera un
std::vector<std::vector<Data>>, dans le pire des cas, on utilisera un data ** et le jeu des allocations dynamiques de la mémoire (avec les risques inhérents à cette pratique).
Mais, dans tous les cas, si la taille n'est pas connue à la compilation, on n'a absolument aucune raison sensée de penser que les cases des différents "sous tableaux" seront effectivement contigües, alors que nous pouvons effectivement avoir cette garantie avec un tableau linéarisé, même si le nombre de lignes et le nombre de colonnes doit être précisé lors de l'exécution
Partager