Bonjour,

Voilà, je veux construire un tableau à trois dimensions de taille MT [100] [100] [500]. L’exemple suivant marche bien quand la taille est petite, MT [10] [10] [10] par exemple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include<stdio.h>
#include<math.h>
#include<time.h>
#include <sys/time.h>
 
 
#define nbc 10
#define Taille_matrice 10
#define T0 200.5
 
void matrice(float (*MT)[nbc][Taille_matrice])
{
	int i,j,k;
 
for (k = 0; k <Taille_matrice; k++)
	{
     for (i=0; i<nbc; i++)
      {
		  for (j=0; j<nbc; j++)
		  {
			  MT[i][j][k]=T0;
		  }
	  }
  }
}
 
void matrice(float (*MT)[nbc][Taille_matrice]);
int main()
{
	clock_t tic = clock();
	int i,j,k;
	float MT[nbc][nbc][Taille_matrice];
	matrice(MT);
 
	for (k = 0; k <Taille_matrice; k++)
	{
     for (i=0; i<nbc; i++)
      {
		  for (j=0; j<nbc; j++)
		  {
			  printf("%lf ", MT[i][j][k]); 
        }  
  printf("\n"); 
	}
	printf("\n");
   }   
 
 
clock_t toc = clock();
    printf("Elapsed: %f seconds\n", (double)(toc - tic) / CLOCKS_PER_SEC);
return 0;
 
}
Mais avec de grand taille [100] [100] [500], le code se bloque (même quand on désactive l’affichage) au niveau de la ligne qui présente la déclaration du tableau :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
float MT[nbc][nbc][Taille_matrice];
Avez-vous une idée c’est quoi le problème et comment on peut le résoudre ?
Merci