Bonjour,
J'ai un comportement très étrange de fwrite. Selon la contenance du buffer que j'écris dans le fichier, j'ai une taille différente du fichier de sortie !
Pour un buffer nul partout, la taille du fichier est égale au nombre d'octets écrits, mais si je remplace la ligne
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 int*results=new int[5000000]; for(int k=0;k<5000000;k++) results[k]=0; FILE *stream; stream=fopen("C:\\test.dat","w"); size_t count=fwrite(results,sizeof(int),5000000,stream);//width*height,stream); std::cout<<"Nombre d'octets ecrits : "<<count*4<<"\n"; delete[]results; fclose(stream); stream = fopen("C:\\test.dat", "r" ); fseek( stream, 0L, SEEK_END ); long endPos = ftell( stream ); fclose( stream ); std::cout<<"Taille du fichier de sortie : "<<endPos<<"\n";
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part results[k]=0;
J'ai 50000 octets de plus dans le fichier de sortie !
Code : Sélectionner tout - Visualiser dans une fenêtre à part results[k]=k%100;
Quelqu'un a une idée de la provenance du problème?
D'avance merci !
Partager