Bonjour,
J'ai un petit probleme avec un bout de code car il me traite seulement 39401 données sur 40000 ... peut-etre a cause de l'allocation mémoire mais la je seche.
J'ai une matrice de unsigned char * car ce sont des données hexa que je manipule.
En premier lieu je lis dans 2 fichiers 2*40000 valeurs correspondant a des coordonnées que je vais réutiliser pour la matrice. Ces données se trouvent dans tabX, tabY (de ce coté pas de problemes).
Ensuite je lis dans un 3eme fichier une valeur que je devrais placer au coordonnées correspondantes dans la matrice. (C'est la que ça coince)
ecartX, ecartY correspondent respectivement à la différence entre la plus grande coordonnées et la plus petite de X et de Y.
Pour raccourcir, ci dessous il ya l'allocation de la matrice, et ensuite la boucle qui bug.
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 matrice=(unsigned char ** *)malloc(ecartX * sizeof(unsigned char * *)); if (matrice == NULL) { printf("\nEchec lors de l'allocation memoire!!!\n"); exit(2); } for (i=0;i<ecartX;i++) { matrice[i] = (unsigned char * *)malloc(ecartY * sizeof(unsigned char *)); if (matrice[i] == NULL) { for (j=0;j<i;j++) { free(matrice[j]); printf("\n Echec lors de l'allocation memoire!!!\n"); exit(2); } } }J'espère que mes explications ont été assez claires, pour que vous puissiez m'aider.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 tmpVal=(unsigned char *)malloc(NB_OCTETS_LUS * sizeof(unsigned char)); for(i=0;i<nbElement && !feof(fichVal);i++) { fread(tmpVal,NB_OCTETS_LUS,1,fichVal); printf("i :%x\n",i); matrice[*(tabX+i)][*(tabY+i)]=tmpVal; }
Partager