Bonjour,
Comment éviter l'erreur de violation d'acces à la ligne I[p][o][q]=(uint16_t)temp;?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.