bonjour,
j ai un pb ds mon code (je ne suis pas un expert) mais là je ne vois pas ou ça plante ..
//////////////////////////////////////////////////////////////////////////
void allocation_image_memoire_buffer_sequence(struct macro ***image,unsigned int *nbre_picture_startcode_code,unsigned int *composante_horizontal,unsigned int *composante_vertical)
{ unsigned int i,j;
unsigned int *DIMivert,*DIMjhori;
if( (DIMivert=(unsigned int *)calloc(1,sizeof(unsigned int))) == NULL)
{
puts("allocation demandee impossible pour DIMivert\n");
}
if( (DIMjhori=(unsigned int *)calloc(1,sizeof(unsigned int))) == NULL)
{
puts("allocation demandee impossible pour DIMhori\n");
}
DIMivert[0]=0;DIMjhori[0]=0;
puts("allocation_image\n");
if( (*nbre_picture_startcode_code == 0) || (*composante_horizontal == 0)|| (*composante_vertical == 0))
{
exit(1);
puts("probleme de detection\n");
}
*DIMivert=(*composante_vertical)>>4;*DIMjhori=(*composante_horizontal)>>4;
//dimension temporaire
// déclaration des séquences d'images
// allocate space memory for 3D matrix ((buffer image d image))
/////////////////////////////////////////////////////////////////////////////////////
image=(struct macro ***)calloc((*nbre_picture_startcode_code), sizeof(struct macro **));
if(!image)
{
puts("\nError making nbreimage image\n");exit(1);
}
for(i = 0 ; i < (*nbre_picture_startcode_code) ; i++)
{
image[i] = (struct macro **)calloc((*DIMivert-1),sizeof(struct macro *));
if(!image[i])
{
puts("\nError making DIMivert2 image\n");exit(1);
}
for(j =0;j<(*DIMivert);j++)
{
image[i][j] = (struct macro *)calloc((*DIMjhori-1),sizeof(struct macro));
if(!image[i][j])
{
puts("\nError making DIMjhori image\n");exit(1);
}
}
}
free(DIMivert);free(DIMjhori);
}
/////////////////////////////////////////////////////////////////////
l appel de ma fct
allocation_image_memoire_buffer_sequence(&image,&nbrepicture,&composanteverticale,&composantehorizontale);
qui me semble correcte
pourtant je perds l adresse de mon tableau 3 D de structure
merci d 'avance car je ne vois pas ou est mon erreur