Fre*_*ong 3 c c++ 64-bit segmentation-fault
我正在尝试这样做:
int main(void){
u_int64_t NNUM = 2<<19;
u_int64_t list[NNUM], i;
for(i = 0; i < 4; i++){
list[i] = 999;
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我的Ubuntu 10.10 64位(gcc 4.6.1)会出现段错误?
您尝试在堆栈上创建一个非常大的数组.这导致堆栈溢出.
尝试在堆上分配数组.例如:
// Allocate memory
u_int64_t *list = malloc(NNUM * sizeof(u_int64_t));
// work with `list`
// ...
// Free memory again
free(list);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1169 次 |
| 最近记录: |