如果我將行的值保持爲100000,程序可以正常工作,但是如果我將100萬行設置爲1000000,程序會給我分段錯誤。是什麼原因?我在Linux 2.6x RHEL內核上運行。是什麼導致以下程序中的段錯誤
#include<stdio.h>
#define ROWS 1000000
#define COLS 4
int main(int args, char ** argv)
{
int matrix[ROWS][COLS];
for(int col=0;col<COLS;col++)
for(int row=0;row < ROWS; row++)
matrix[row][col] = row*col;
return 0;
}
堆棧溢出Stackoverflow ... – Mysticial 2013-03-01 19:47:47
可悲的是沒有辦法在編譯時捕獲這樣的分配失敗。儘量使用盡可能小的數組。如果你不確定,那麼可能你沒有足夠的堆棧空間;-) – 2013-03-01 20:01:28