c++ - 如何将动态分配的多维结构数组写入文件?

标签 c++ fwrite

结构

struct str
{
  int a;
  char b[20];
  int c;
}

声明

struct str ** str_array=0;

分配和初始化(使用)

str_array= new struct str*[100];
for(int i=0;i<100;++i)
   str_array[i]=new struct str[1000];

for(int i=0;i<100;++i)
   for(int j=0;j<1000;++j;
      str_array[i][j].a=j;
       .....

现在我尝试像这样写数组的内容

for(int i=0;i<100;++i)
   for(int j=0;j<1000;++j;
     fwrite(str_array[i][j],sizeof(str),1,fname);

问题

no suitable conversion from str to const void* exists

我打算用同样的风格来阅读它。

最佳答案

改变:

 fwrite(str_array[i][j],sizeof(str),1,fname);

到:

 fwrite(&str_array[i][j],sizeof(str),1,fname);

关于c++ - 如何将动态分配的多维结构数组写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10414097/

相关文章:

c - 通过获取用户输入写入文件仅保存 "x"的值

c++ - float 到固定转换

c++ - GNU C++ 如何检查 -std=c++0x 何时生效?

C - 来自不稳定源的 fwrite()

c - 使用 fread/fwrite 在 C 中的文件中读写结构

c - C 中 fwrite 和 struct 的奇怪错误

用于模拟应用程序的 C++ normal_distribution 函数

c++ - 库可以替换 C/C++ 中的本地套接字吗?

c++ - 奇怪的功能查找

r - fill=TRUE 的简单 fread 操作失败