Programmation en c
Fermé
walamefteh
Messages postés
35
Date d'inscription
lundi 10 mars 2008
Statut
Membre
Dernière intervention
14 septembre 2009
-
13 mars 2008 à 21:00
le père - 14 mars 2008 à 09:19
le père - 14 mars 2008 à 09:19
A voir également:
- Programmation en c
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
- Programmation - Guide
- Application de programmation - Guide
- Logiciel programmation clé voiture gratuit - Forum Programmation
- Programmation logo tortue télécharger - Télécharger - Études & Formations
1 réponse
Bonjour
*** allocation (l,c,z);
Je ne crois pas que cette ligne veuille dire grand chose. Je suppose que tu voulias faire :
int *** tableau;
tableau =allocation (l,c,z);
Mais pourqui te compliquer l'existence ? Un seul tableau = malloc (l*c*z,sizeof(int)); fait l'affaire, à condition d'accéder aux éléments du tableau par tableau[ligne+c*(colonne+z*couche)]. La désallocation de la mémoire est évidente.
Si tu tiens à tes pointeurs de pointeurs de pointeurs, ta fonction d'allocation me semble bien bizarre. Je ferais plutôt
et là tu accèdes aux éléments par tableau[ligne][colonne][couche], ce qui est bien sûr plus agréable
Mais tu vas t'arracher les cheveux (ou re-poster ici ;-) ) avant de faire une désallocation correcte !
*** allocation (l,c,z);
Je ne crois pas que cette ligne veuille dire grand chose. Je suppose que tu voulias faire :
int *** tableau;
tableau =allocation (l,c,z);
Mais pourqui te compliquer l'existence ? Un seul tableau = malloc (l*c*z,sizeof(int)); fait l'affaire, à condition d'accéder aux éléments du tableau par tableau[ligne+c*(colonne+z*couche)]. La désallocation de la mémoire est évidente.
Si tu tiens à tes pointeurs de pointeurs de pointeurs, ta fonction d'allocation me semble bien bizarre. Je ferais plutôt
int *** allocation (int l,int c ,int z) {
int ***t,i,j;
t=(int***)malloc(l*sizeof(int **));
for(i=0;i<l;i++) {
*(t+i)=(int**)(malloc(c*sizeof(int*)));
for (j=0; j<c;j++)
*(*(t+i)+j)=(int*) malloc(z*sizeof(int));
} // for i
return t;
} // allocation
et là tu accèdes aux éléments par tableau[ligne][colonne][couche], ce qui est bien sûr plus agréable
Mais tu vas t'arracher les cheveux (ou re-poster ici ;-) ) avant de faire une désallocation correcte !