Matrice Dynamique URGENT svp ... [C] - Programmation
Marsh Posté le 21-01-2002 à 22:30:26
en fait il plante au premier i++
il n'y aurrais en fait qu'une seule dimenssion ??
Marsh Posté le 21-01-2002 à 22:31:20
Code :
|
t sur que c'est du C ce truc
[edtdd]--Message édité par deathsharp--[/edtdd]
Marsh Posté le 21-01-2002 à 22:32:52
vi vi c du C !
ca plante aussi qd les indices i et j commencent a 0 ... etrange ...
Marsh Posté le 21-01-2002 à 22:34:38
sinon c peut etre pas comme ca qu'il faut creer une matrice dynamique ... je suis pas sur ...
Marsh Posté le 21-01-2002 à 22:44:28
indice: un seul malloc, pas deux c portenawak
pour ca que je te demandais si c'etait bien du C
regarde bien: tu alloc un tableau de x elements int ( matX ) puis tu alloue y elements ( matY ) fois la taille du pointeur de l'autre tab...
Marsh Posté le 21-01-2002 à 22:45:31
sans compter les fuites de mem parce que jsuis sur que tu desalloue pas ces deux block de memoire...
Marsh Posté le 21-01-2002 à 22:47:07
oui c bien ca ... je pensait que ca faisait des tableaux dont le premier element de chaque etait contenu dans un autre tableau, ce qui faisait un matrice ...apparement non
Marsh Posté le 21-01-2002 à 22:48:07
si si je les dealloue qd meme .. mais c vrai que faut faire gaffe pq ca part vite !!
Marsh Posté le 21-01-2002 à 22:50:38
en fait je vais faire juste un tableau .. ca serra + simple et ca doit pouvoir marcher ...
Marsh Posté le 22-01-2002 à 09:33:08
int i; // compteur
int l,c; // nombre de lignes et colonnes
int** t=(int**)NULL;
t=(int**)malloc(sizeof(int*)*l);
for (i=0;i<l;i++) t[i]=(int*)malloc(sizeof(int)*c);
et aprés ca doit marcher.
Marsh Posté le 22-01-2002 à 10:08:22
a mon avis , ca ca marche :
DarkOli a écrit a écrit : int i; // compteur int l,c; // nombre de lignes et colonnes int** t=(int**)NULL; t=(int**)malloc(sizeof(int*)*l); for (i=0;i<l;i++) t[i]=(int*)malloc(sizeof(int)*c); et aprés ca doit marcher. |
Marsh Posté le 22-01-2002 à 21:34:15
N'oublie pas de vérifier si malloc a bien alloué ta mémoire pour être propre... Et libérer cette mémoire une fois inutilisée en passant.
Marsh Posté le 21-01-2002 à 22:26:39
bonsoir !!
g un gros probleme pour un devoir a rendre demain : je n'arrive pas a faire une matrice dynamique.
je fais un double malloc :
tab_mat=(int **)malloc(matY*sizeof((int *)malloc(matX*sizeof (int))));
mais qd je veut tout initialiser ca fait une erreur memoire et je sais pas pq ...
ca donne :
printf("DEBUT INIT\n" );
for(i=1 ; i<matY ; i++){
for(j=1 ; j<matX ; j++){
tab_mat[i][j]=0;
printf(" %d ",j);
}
}
printf("FIN INIT\n" );
il y a un truc qui va pas mais ou ??
merci d'avance !!
---------------
Ca marche pas sauf des fois ........