Bonjour,
J'ai un problème depuis des années déjà avec les tableaux de tableaux (problème que j'arrive à contourner en mettant tout dans une liste).
Le problème est que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 TYPE myfunction() // Type souhaité à retourner : int[7][5] ; type qu'on peut retourner : int** { int grid[7][5] = malloc(7*5*sizeof(int)); return grid; } int main() { int grid[7][5] = myfunction(); // Type incompatible si myfunction retourne int** et elle ne peut pas retourner int[7][5]. }
est différent de
Code : Sélectionner tout - Visualiser dans une fenêtre à part int** grid1;
. En effet grid[i+1][j] <=> *(grid+(i+1)*5+j) et avec int**, on perd les infos de la taille.
Code : Sélectionner tout - Visualiser dans une fenêtre à part int grid2[7][5];
Y a-t-il une solution sans utiliser std::vector, une bibliothèque ou une classe pré-implantée svp ?
PS: Quand je tape :
le type de retour ne fonctionne pas plus et le new non plus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 int(*)[7][5] function() { int grid[7][5] = new int[7][5]; return grid; }
Partager