便便代码人生

关注技术, 偶尔动动手

[问] fwrite的问题

Posted by bianbian on 2007-07-28 12:52


本文Tags:

fwrite(const void *buffer,size_t size, size_t count, FILE *fp);
这个似乎是把内存里的一股脑儿write到文件里去。
如果buffer是new出来的一大堆数据,有可能在内存里是分片存的,这时候一大堆一起写就有问题。
我不清楚是VC6的问题,还是fwrite本来就有这个问题:

  1. ....
  2. double *_bt[k] = new double[_header.wHeight * _header.wWidth];
  3. ....
  4. for(k=0; k < _GRAY_BANDS; k++)
  5. {
  6.   //用:fwrite(_bt[k], sizeof(double), _header.wHeight * _header.wWidth, fp2); 就不对
  7.   //必须一个一个保存
  8.   for(int j=0; j < _header.wHeight; j++)
  9.   {
  10.     for(int i=0; i < _header.wWidth; i++)
  11.     {
  12.        int idx = j * _header.wHeight + i;
  13.        fwrite(& _bt[k][idx], sizeof(double), 1, fp2);
  14.     }
  15.   }
  16.   delete[] _bt[k];
  17. }
  18. fclose(fp2);

哪位经过告诉我一声。

标签:

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in C/C++, Technology | 3 Comments »