compuman101 a écrit :
<snip>
Le problème vient de la ligne 21, apparement &(matrice[i][j]) n'est pas valide.
|
Ce code ne compile pas pour de nombreuses raisons. Il serait préférable que tu postes du code complet pour qu'on soit dans les mêmes conditions que toi...
Après réparations, ce code (à lire avec soin. Poser des questions si nécessaire):
Code :
- #include <stdlib.h>
- #include <stdio.h>
- #define taille 5
- int main (void)
- {
- int **matrice = malloc (sizeof *matrice * taille);
- if (matrice != NULL)
- {
- /* Initialisation */
- {
- int i;
- for (i = 0; i < taille; i++)
- {
- int j;
- matrice[i] = malloc (sizeof *matrice[i] * taille);
- for (j = 0; j < taille; j++)
- {
- matrice[i][j] = rand () / 1000;
- }
- }
- }
- /* Generation du fichier */
- #define FNAME "fichier.txt"
- {
- FILE *fichier = fopen (FNAME, "w" );
- if (fichier == NULL)
- {
- perror (FNAME);
- }
- else
- {
- int i;
- for (i = 0; i < taille; i++)
- {
- int j;
- for (j = 0; j < taille; j++)
- {
- fprintf (fichier, "%5d", matrice[i][j]);
- }
- fprintf (fichier, "\n" );
- }
- }
- }
- /* Liberation de la matrice */
- {
- int i;
- for (i = 0; i < taille; i++)
- {
- free (matrice[i]), matrice[i] = NULL;
- }
- free (matrice);
- }
- }
- system ("pause" );
- return 0;
- }
|
produit le fichier "fichier.txt" contenant
0 0 10 1 11
7 17 6 22 31
9 14 3 22 18
1 5 26 22 25
27 31 7 13 31
|
et il libère la mémoire correctement...
Message édité par Emmanuel Delahaye le 08-12-2004 à 20:30:58
---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/