Probleme tableau 3 dimensions
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:
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:
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
Probleme tableau 3 dimensions en C
Merci Bousk pour votre réponse.
Désolé mais je n'ai pas bien compris ce que vous voulez dire par ça :
Citation:
Btw, si ta matrice est déclarée float MT[nbc][nbc][Taille_matrice] pourquoi les paramètres sont float (*MT)[nbc][Taille_matrice] ?
En effet, moi j'ai pensé qu'il n'y a pas un problème de mémoire car le même code a été fait sous Matlab et il marche bien.