【发布时间】:2012-05-12 12:59:58
【问题描述】:
是的,查了一下这个问题,我相信这是因为我在我的类定义中有wchar_t downloadedText[400000]; 我已经阅读了关于如何使用new 运算符分配空间来处理这个问题的解决方案, IE:
wchar_t *downloadedText;
downloadedText = new wchar_t[400000];
但是我需要将类的实例写入文件,并且像上面那样分配变量似乎使用指针指向以不会写入我的文件的方式存储的数据。这也是我不能使用std::vector的原因。
我读过我可能有的另一个选择是我可以增加“堆栈”的大小。我使用 VS2010 作为我的 IDE,我位于我的项目属性 > 链接器 > 系统“堆栈提交大小”、“堆栈保留大小”、“堆提交大小”和“堆保留大小”字段中,但我不确定这是否是我该如何处理我的问题,如果是,正确设置相应字段的内容。
【问题讨论】:
-
在每种情况下,您如何访问要写入的元素?
-
您能否用静态数组与指针/向量的编写过程的代码示例更新您的问题?
-
fileOutput.write(reinterpret_cast<char *> (&myObjects[i]), sizeof(MyClass));更改类成员时写入文件的过程不会改变(尽管如果我想在添加/删除成员变量后从文件中读取对象数据我将无法这样做)。我显然不能像我不能使用std::string那样使用std::vector,因为它们不直接包含我要写入的数据,而是它们更复杂并且包含指向我想要的实际数据的指针等。跨度> -
有指针怎么写?
-
为什么不写一个合适的写/序列化函数,或者干脆使用一些序列化库? stackoverflow.com/questions/234724/how-to-serialize-in-c
标签: c++ arrays stack-overflow