我有一个在ubuntu下成功运行的C代码,但是当我试图在红帽PC上运行它时,它会给出一个"分段错误(核心转储)"错误。我已将错误缩小为以下声明:
long int encryption[800000][2];
此声明导致代码崩溃。
我该怎么办?任何建议? 干杯=)
答案 0 :(得分:3)
将其更改为
static long int encryption[800000][2];
或者将其设为全局,或使用malloc
。
或使用ulimit -s
。
答案 1 :(得分:0)
您遇到堆栈溢出,因为数组已在堆栈上分配。
堆栈的大小是平台定义的,取决于线程模型和配置,以及sysctl
/ ulimit
设置(以及其他?)。
使数组动态分配或静态分配('global')以防止此