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).

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].
}
Le problème est que :
est différent de . En effet grid[i+1][j] <=> *(grid+(i+1)*5+j) et avec int**, on perd les infos de la taille.

Y a-t-il une solution sans utiliser std::vector, une bibliothèque ou une classe pré-implantée svp ?

PS: Quand je tape :
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;
}
le type de retour ne fonctionne pas plus et le new non plus.