C++ Malloc在C++;一句话

C++ Malloc在C++;一句话,c++,arrays,pointers,malloc,multidimensional-array,C++,Arrays,Pointers,Malloc,Multidimensional Array,现在,我需要将一个类保存到一个二进制文件中,而我在尝试实现时遇到的问题是,该类的成员实际上是指针,因此在将该类写入文件时,它只写入那些指针,而不是指针指向的实际数据 所以我所做的是在类中声明成员时使用malloc()直接分配内存。我知道这不是一件好事,但我真的需要能够将这个类保存到一个二进制文件中 我可以用char数组(一维)轻松地实现这一点,但我也有一个2dint数组,我只是不知道如何让它为这两个维度分配足够的内存(我事先知道维度大小)。我该怎么办 也许有一种方法可以声明静态数组,因为我事先知

现在,我需要将一个类保存到一个二进制文件中,而我在尝试实现时遇到的问题是,该类的成员实际上是指针,因此在将该类写入文件时,它只写入那些指针,而不是指针指向的实际数据

所以我所做的是在类中声明成员时使用malloc()直接分配内存。我知道这不是一件好事,但我真的需要能够将这个类保存到一个二进制文件中


我可以用char数组(一维)轻松地实现这一点,但我也有一个2dint数组,我只是不知道如何让它为这两个维度分配足够的内存(我事先知道维度大小)。我该怎么办

也许有一种方法可以声明静态数组,因为我事先知道它们的大小,然后在内存中用新数组替换它们?我不知道我是否能做到这一点,我不想一个接一个地替换元素


注意:我需要变量作为指针,因为我希望以后能够替换它们的内容,而不是一个接一个地替换元素。

您的序列化看起来很奇怪。(我事先知道维度大小)。我该怎么办?如果编译器支持C++11,则应
std::array
;如果编译器不支持,则应
std::vector v(N,std::vector(M))
。std::vectortiles(20,std::vector(15));不适合我。编译器抛出一个错误“数字常量之前的预期标识符”。@Fabis-您使用的编译器是什么?您要编译的确切代码是什么?它确实需要您包含代码块(GNU GCC)。这就是我正在编译的代码,代码中没有任何其他内容被破坏,因为当我删除它时,所有内容都会编译。