Allocation dynamique d'un tableau a deux dimensions

Résolu
Kurul1 Messages postés 28 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 15 janvier 2016 - 14 janv. 2005 à 09:57
Kurul1 Messages postés 28 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 15 janvier 2016 - 14 janv. 2005 à 10:55
Bonjour à tous

Je voudrais allouer dynamiquement un tableau a deux dimensions d'entiers

Est-t-il possible de le faire avec des new au lieu d'utiliser malloc.

Si oui, pouvez vous m'expliquer comment faire.

car mon problème est que cette création de tableau ne fonctionne pas

int Tab[Nbpuzzles][Nbpieces];
où Nbpuzzles et Nbpieces sont des variables

Le compilateur me dit Expression constante nécessaire

Merci d'avance

2 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
14 janv. 2005 à 10:10
il faut tout d'abord allouer un tableau de sous-tableaux et allouer les sous-tableaux :
int** tab = new int*[Nbpuzzles];
for(i = 0; i < Nbpuzzles; i++)
tab[Nbpuzzles] = new int[Nbpieces];

l'accès se fait ensuite :
int val = tab[numpuzzle][numpiece];

pour la destruction :
for(i = 0; i < Nbpuzzles; i++)
delete[] tab[Nbpuzzles];

delete[] tab;
3