Publicité
Offres partenaires
Actualités relatives

De la DDR3 abordable

Publié le 21 mai 2008

OCZ propose (enfin) de la mémoire DDR3 à un prix abordable. Lire la suite

Deux Vitesta de plus chez A-DATA

Publié le 19 novembre 2007

A-DATA, une société méconnue en France mais très apprciée dans le monde, propose une nouvelle gamme Vitesta. Lire la suite

Nehalem, DDR3 et tension: un problème de carte mère

Publié le 21 octobre 2008

Intel aurait révélé qu’il n’avait pas fixé de limite de tension pour son CPU, pour la mémoire utilisée et que les deux tensions n’étaient pas liées. Lire la suite

Un iPod Vidéo avec 32 Go de mémoire flash ?

Publié le 09 février 2007

Un analyste (Jesse Tortora, du Prudential Equity Group) indique qu’Apple pourrait sortir une version de son iPod qui utiliserait de la mémoire flash en lieu et place du disque dur, et ce, avant la fin de l’année 2007. Apple, le plus gros vendeur de disq ... Lire la suite

Les derniers tests

Comparatif : disques durs externes 1 To

Publié le 30 octobre 2008

Tous les disques durs externes que nous testons aujourd’hui ont une capacité d’un téraoctet, mais les offres, leurs performances et leur consommation diffèrent considérablement. Un produit se démarque clairement de la concurrence. Lire la suite

TNT HD : infos utiles

Publié le 30 octobre 2008

La TNT HD arrive enfin en France. Quelles chaines sont disponibles ? Quelle qualité faut-il attendre ? La TNT HD est-elle vraiment la révolution annoncée ? Lire la suite

Les téléphones tactiles peuvent-ils remplacer les PC ?

Publié le 24 octobre 2008

Les téléphones tactiles sont-ils capables de rivaliser avec les PC ? Lire la suite

Test du Shuttle X27 : l’Atom sous Vista ?

Publié le 23 octobre 2008

Dans la course à la puissance à laquelle se livrent Intel et AMD, l’Atom est une sorte d’outsider. C’est pourtant lui que Shuttle a choisi pour son ordinateur petit format. Mais est-il assez puissant pour une utilisation au quotidien ? Lire la suite

  FORUM Tom's Hardware » Programmation » C / C++ / Java » Problème de désallocation mémoire
 

Problème de désallocation mémoire

Il y a 50 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici



Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Problème de désallocation mémoire
 
Wait 'n See
Plus d'informations

Bonjour, j'ai depuis hier un petit problème de désallocation mémoire au sujet d'une matrice qui est définie comme un pointeur sur une structure contenant 2 entiers et un tableau de taleau d'entiers. J'ai pourtant bien vérifié mes allocations et désallocation et un des free de la boucle déconne et me provoque une SEG FAULT. je ne sais pas pourquoi ça marche pas. Merci de m'aider si vous trouvez une explication logique.
Bonne journée

Voici les sources :

matrix.h:

Code :
  1. #ifndef _MATRIX_H
  2. #define _MATRIX_H
  3. #define type int
  4. struct _matrix{
  5. int h_dim;
  6. int v_dim;
  7. type** coefs;
  8. };
  9. #define matrix _matrix*
  10. matrix m_allocate(int, int);
  11. matrix m_remplir(matrix);
  12. int m_afficher(matrix);
  13. int m_freed(matrix);
  14. #endif //_MATRIX_H



matrix.c

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <assert.h>
  4. #include "matrix.h"
  5. matrix m_allocate(int m, int n){
  6.   matrix A;
  7.   int j;
  8.   A->h_dim = m;
  9.   A->v_dim = n;
  10.   A->coefs=(int**)malloc((A->v_dim)*sizeof(int*));
  11.   for(j=0;j<=(n-1);j++)
  12.     A->coefs[j]=(int*)malloc((A->h_dim)*sizeof(int));
  13.   return A;
  14. }
  15. int m_freed(matrix A){
  16.   int j;
  17.   for(j=A->v_dim-1;j>=0;j--){
  18.       printf("%d\n",j);
  19.       free(A->coefs[j]);
  20.       }
  21.   free(A->coefs);
  22.   return EXIT_SUCCESS;
  23. }
  24. matrix m_remplir(matrix A){
  25.   int m=h_dim_r(A);
  26.   int n=v_dim_r(A);
  27.   int i,j;
  28.   fprintf(stdout, "\n\nMatrice %d,%d\n\n",h_dim_r(A),v_dim_r(A));
  29.   for(i=1;i<=m;i++)
  30.     for(j=1;j<=n;j++){
  31.             fprintf(stdout,"Coefficient A[%d][%d]=",i,j);
  32.             fscanf(stdin,"%d",&A->coefs[i-1][j-1]);
  33.   }
  34.   return A;
  35. }
  36. int m_afficher(matrix A){
  37. int i,j;
  38. int m=A->h_dim-1;
  39. int n=A->v_dim-1;
  40. fprintf(stdout, "\n\nMatrice %dx%d\n\n", A->h_dim, A->v_dim);
  41. for(i=0;i<=m;i++){
  42.     for(j=0;j<=n;j++)
  43.       fprintf(stdout, "%d\t", A->coefs[i][j]);
  44.     fprintf(stdout, "\n" );
  45. }
  46. return EXIT_SUCCESS;
  47. }



Prgm.c

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "matrix.h"
  4. int main(int argc, char *argv[])
  5. {
  6.   matrix A;
  7.   A=m_allocate(atoi(argv[1]), atoi(argv[2]));
  8.   A=m_remplir(A);
  9.   m_afficher(A);
  10.   m_freed(A);
  11.   return 0;
  12. }



Merci de votre précieuse aide!
C'est pas tant que ce que je réalise soit important mais c'est pour comprendre ce qui ne marche pas et mes erreurs.

Liens sponsorisés

Wait 'n See
Plus d'informations

C'est bon j'ai trouvé. En fait j'avais tout bêtement échangé v_dim et h_dim dans l'allocation des matrices.
:pt1cable:

See ya'


  FORUM Tom's Hardware » Programmation » C / C++ / Java » Problème de désallocation mémoire

Aller à :
 

Annonces Google