Problème avec violation d'accès
Bonjour,
Comment éviter l'erreur de violation d'acces à la ligne I[p][o][q]=(uint16_t)temp;?
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 29 30 31 32
| uint16_t *** get_Images(uint32_t ImageCount,uint32_t ImHeight, uint32_t ImWidth,FILE* fp)
{
uint16_t ***I;
uint16_t temp[2];
I = (uint16_t ***)malloc((ImHeight+ImWidth+ImageCount)*sizeof(uint16_t**));
uint16_t tracks[4];
uint32_t o,p;
uint16_t q;
printf("ImWidth %d\n",ImWidth);
printf("ImWidth*sizeof(uint16_t) %d\n",ImWidth*sizeof(uint16_t));
printf("ImageCount %d\n",ImageCount);
printf("ImHeight %d\n",ImHeight);
for (p=0;p<ImageCount;p++)
{
for(o=(ImHeight-1);o>=0;o--)
{
q=0;
while(q<ImWidth)
{
fread(&temp,2,1,fp);
//printf("temp %d",temp);
I[p][o][q]=(uint16_t)temp;
q=q+2;
}
}
fread(&tracks,sizeof(tracks),1,fp);
}
return(I);
free(I);
} |
Message:
'Cine_project.exe'*: Chargé 'C:\Users\qz27p2\Documents\Visual Studio 2010\Projects\Cine_project\Debug\Cine_project.exe', Les symboles ont été chargés.
'Cine_project.exe'*: Chargé 'C:\Windows\SysWOW64\ntdll.dll', Cannot find or open the PDB file
'Cine_project.exe'*: Chargé 'C:\Windows\SysWOW64\kernel32.dll', Cannot find or open the PDB file
'Cine_project.exe'*: Chargé 'C:\Windows\SysWOW64\KernelBase.dll', Cannot find or open the PDB file
'Cine_project.exe'*: Chargé 'C:\Windows\SysWOW64\msvcr100d.dll', Les symboles ont été chargés.
Exception de première chance à 0x00bd3f7d dans Cine_project.exe*: 0xC0000005: Violation d'accès lors de la lecture de l'emplacement 0xcdcdd389.
Merci d'avance pour d'éventuelles réponses.