1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| #include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
int main()
{
int i,j=0;
char ***tableau=NULL;
int nombre_de_ligne = 4;
int tableau_nombre_de_colonne[4]={4, 2, 3, 5};
//allocation
tableau = malloc(nombre_de_ligne * sizeof(tableau));
if(tableau==NULL)
{
fprintf(stderr,"Erreur d'allocation de mémoire (1)\n");
exit(1);
}
for(i=0; i < nombre_de_ligne; i++)
{
tableau[i]= malloc(tableau_nombre_de_colonne[i]*sizeof(tableau[i]));
if(tableau[i]==NULL)
{
fprintf(stderr,"Erreur d'allocation de mémoire (2)\n");
exit(2);
}
for(j=0; j<tableau_nombre_de_colonne[i];j++)
{
tableau[i][j] = malloc(65 * sizeof (*tableau[i][j]));
}
}
//reallocation
nombre_de_ligne = 6;
int nouveau_tableau_nombre_de_colonne[6]={1,4, 7, 3, 2,9};
fprintf(stderr,"DEBUG: ICI (1)\n");
tableau = realloc(tableau,nombre_de_ligne * sizeof(tableau));
if(tableau==NULL)
{
if(tableau==NULL)
{
fprintf(stderr,"Erreur d'allocation de mémoire (3)\n");
exit(3);
}
}
for(i =0; i < nombre_de_ligne; i++)
{
fprintf(stderr,"DEBUG: ICI (2)\n");
tableau[i]= realloc(tableau[i],tableau_nombre_de_colonne[i]*sizeof(tableau[i]));
if(tableau[i]==NULL)
{
fprintf(stderr,"Erreur d'allocation de mémoire (3)\n");
exit(4);
}
for(j=0; j<nouveau_tableau_nombre_de_colonne[i];j++)
{
fprintf(stderr,"DEBUG: ICI (3)\n");
tableau[i][j] = realloc(tableau[i][j],65 * sizeof (*tableau[i][j]));
if(tableau[i][j]==NULL)
{
fprintf(stderr,"Erreur d'allocation de mémoire (4)\n");
exit(4);
}
}
fprintf(stderr,"DEBUG: ICI (4)\n");
}
fprintf(stderr,"DEBUG: ICI (5)\n");
} |
Partager