comportement étrange de fwrite
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 !
Code:
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"; |
Pour un buffer nul partout, la taille du fichier est égale au nombre d'octets écrits, mais si je remplace la ligne
par
J'ai 50000 octets de plus dans le fichier de sortie !
Quelqu'un a une idée de la provenance du problème?
D'avance merci !