Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1872 connectés 

  FORUM HardWare.fr
  Programmation

  [C] Matrice Dynamique URGENT svp ...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Matrice Dynamique URGENT svp ...

n°91737
camarchepo​a
m'enfin !
Posté le 21-01-2002 à 22:26:39  profilanswer
 

:hello: 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 !!  :jap:


---------------
Ca marche pas sauf des fois ........
mood
Publicité
Posté le 21-01-2002 à 22:26:39  profilanswer
 

n°91741
camarchepo​a
m'enfin !
Posté le 21-01-2002 à 22:30:26  profilanswer
 

en fait il plante au premier i++  
 
il n'y aurrais en fait qu'une seule dimenssion ??


---------------
Ca marche pas sauf des fois ........
n°91742
deathsharp
Posté le 21-01-2002 à 22:31:20  profilanswer
 

Code :
  1. tab_mat=(int **)malloc(matY*sizeof((int *)malloc(matX*sizeof (int))));


 
t sur que c'est du C ce truc :D

 

[edtdd]--Message édité par deathsharp--[/edtdd]


---------------
What butter and whiskey won't cure, there is no cure for.
n°91744
camarchepo​a
m'enfin !
Posté le 21-01-2002 à 22:32:52  profilanswer
 

vi vi c du C !
 
ca plante aussi qd les indices i et j commencent a 0 ... etrange ...


---------------
Ca marche pas sauf des fois ........
n°91746
camarchepo​a
m'enfin !
Posté le 21-01-2002 à 22:34:38  profilanswer
 

sinon c peut etre pas comme ca qu'il faut creer une matrice dynamique ... je suis pas sur ...


---------------
Ca marche pas sauf des fois ........
n°91750
deathsharp
Posté le 21-01-2002 à 22:44:28  profilanswer
 

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...


---------------
What butter and whiskey won't cure, there is no cure for.
n°91751
deathsharp
Posté le 21-01-2002 à 22:45:31  profilanswer
 

sans compter les fuites de mem parce que jsuis sur que tu desalloue pas ces deux block de memoire...


---------------
What butter and whiskey won't cure, there is no cure for.
n°91752
camarchepo​a
m'enfin !
Posté le 21-01-2002 à 22:47:07  profilanswer
 

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  
 
 :cry:


---------------
Ca marche pas sauf des fois ........
n°91753
camarchepo​a
m'enfin !
Posté le 21-01-2002 à 22:48:07  profilanswer
 

si si je les dealloue qd meme .. mais c vrai que faut faire gaffe pq ca part vite !!


---------------
Ca marche pas sauf des fois ........
n°91754
camarchepo​a
m'enfin !
Posté le 21-01-2002 à 22:50:38  profilanswer
 

en fait je vais faire juste un tableau .. ca serra + simple et ca doit pouvoir marcher ...


---------------
Ca marche pas sauf des fois ........
mood
Publicité
Posté le 21-01-2002 à 22:50:38  profilanswer
 

n°91813
darkoli
Le Petit Dinosaure Bleu
Posté le 22-01-2002 à 09:33:08  profilanswer
 

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.

n°91818
flo850
moi je
Posté le 22-01-2002 à 10:08:22  profilanswer
 

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.  




---------------

n°92141
Krueger
tout salaire demande dutravail
Posté le 22-01-2002 à 21:34:15  profilanswer
 

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. :)


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C] Matrice Dynamique URGENT svp ...

 

Sujets relatifs
[Urgent, c pour le boulot] Comment on patch un fichier ???[HTTP]urgent!!!!!!!!!
[URGENT - STAGE] Mon input type="file" me renvoi un fichier .tmp[WinDev] URGENT !! Pb avec la fonction "Remplace"
[HTML] http-equiv [URGENT][PHP/mysql] importer blob dans un forum [VERY URGENT]
Access protection ... urgent[prolog] Recherche Urgent(loup,chevre,choux) sujet d'iup1
Urgent prog PASCAL 
Plus de sujets relatifs à : [C] Matrice Dynamique URGENT svp ...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR