我有一个在ubuntu下成功运行的C代码,但当我试图在一台红帽PC上运行它时,它给出了一个“分段错误(核心转储)”错误。我已经将错误范围缩小为来自以下语句:
long int encryption[800000][2];此声明会导致代码崩溃。
我能做什么?有什么建议吗?干杯=)
发布于 2011-10-27 03:54:31
将其更改为
static long int encryption[800000][2];或者使其成为全局的,或者使用malloc。
或者使用ulimit -s。
发布于 2011-10-27 04:08:21
您遇到堆栈溢出,因为数组是在堆栈上分配的。
堆栈的大小是由平台定义的,取决于线程模型和配置,以及sysctl/ulimit设置(以及其他?)。
使阵列动态分配或静态分配('global')以防止出现这种情况
https://stackoverflow.com/questions/7908061
复制相似问题