【发布时间】:2018-10-10 04:35:39
【问题描述】:
我是新编程,我发现了一个问题 我正在定义一个像这样的 c++ 数组
double name[512][512]
但是当我在 Windows 上运行它时(它编译时没有错误)它崩溃了。当我在 Linux(Ubuntu)上运行时,它运行它应该如何运行而不会出现问题。我认为 Windows 限制了我的程序可以占用的内存,对吗?我该如何解决?感谢所有可以帮助我的人。
【问题讨论】:
-
你确定是这样吗?有些库可以在 linux 上运行,但不能在 windows 上确定!
-
你在每个平台上用什么来构建你的程序?
-
我猜测不同的默认堆栈大小。
-
512 * 512 * 8 = 2097152(需要超过 2M 的堆栈空间)。更好的是double (*name)[512];,然后是name = malloc (512 * sizeof *name);,它将动态分配相同数量的字节,并允许您通过指向512字符数组的指针进行相同的访问。 -
我们应该为来自新人的问题提供奖励,其中答案是
Stack Overflow。 :)
标签: c++ linux windows memory memory-management