[问] fwrite的问题
Posted by bianbian on 2007-07-28 12:52
本文Tags: fwrite
fwrite(const void *buffer,size_t size, size_t count, FILE *fp);
这个似乎是把内存里的一股脑儿write到文件里去。
如果buffer是new出来的一大堆数据,有可能在内存里是分片存的,这时候一大堆一起写就有问题。
我不清楚是VC6的问题,还是fwrite本来就有这个问题:
- ....
- double *_bt[k] = new double[_header.wHeight * _header.wWidth];
- ....
- for(k=0; k < _GRAY_BANDS; k++)
- {
- //用:fwrite(_bt[k], sizeof(double), _header.wHeight * _header.wWidth, fp2); 就不对
- //必须一个一个保存
- for(int j=0; j < _header.wHeight; j++)
- {
- for(int i=0; i < _header.wWidth; i++)
- {
- int idx = j * _header.wHeight + i;
- fwrite(& _bt[k][idx], sizeof(double), 1, fp2);
- }
- }
- delete[] _bt[k];
- }
- fclose(fp2);
哪位经过告诉我一声。
标签: fwrite遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道
相关日志
Posted in C/C++, Technology | 3 Comments »