declaration dynamique dans une fonction
Si je declare dans un programme:
Code:
1 2 3 4 5 6 7
| typedef struct
{
int **matriceF;
int *info;
int *coding;
int *MC;
}bloc; |
et que j'alloue la memoire de chacun des pointeurs dans une fonction
Code:
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
| void compute_bloc (int *info, int j ,int *tailles)
{
int i,longueur_bloc;
bloc bc;
longueur_bloc = (int) tailles[0]/tailles[3];
//initialisation bc.info
bc.info = malloc (sizeof(int) * longueur_bloc);
if (bc.info == NULL) printf("probleme lors de l'allocation de bc.info\n");
for (i=0;i<longueur_bloc;i++)
{
bc.info[i] = info[tailles[3]*i + j];
}
bc.matriceF = malloc (sizeof( int *) * longueur);
if(bc.matriceF==NULL)
{
// Gestion de l'erreur
}
for (i=0;i<longueur;i++)
{
bc.matriceF[i] = malloc (sizeof( int ) * largeur);
if(bc.matriceF[i]==NULL)
{
// Gestion de l'erreur
}
} |
est ce que une fois revenu dans le programme principal je peux lire
par exemple bc.matriceF[k]
sans risque que les donnees ont ete effacées????