我想不出有什麼用下面的代碼的問題崩潰,它只是崩潰而不outputing任何內容到屏幕上:C++程序與結構聲明數組
#include <cstdlib>
#include <iostream>
using namespace std;
typedef struct {
unsigned int recid;
unsigned int num;
char str[120];
bool valid;
} record_t;
typedef struct {
unsigned int blockid;
unsigned int nreserved;
record_t entries[100];
bool valid;
unsigned char misc;
} block_t;
int main(){
cout << "Before Buffer" << endl;
block_t buffer[1000];
cout << "After Buffer" << endl;
return 0;
}
我試圖Qt的調試器和GBD和他們只顯示分段故障並指向主功能的開始。
每個block_t元素的大小爲13.2 Kbs,所以緩衝區數組的大小應該在13Mb左右。也許這對C陣列來說太過分了?
如果你認爲它是數組的大小,那麼你有沒有嘗試過更小的尺寸? – 2013-04-29 01:57:53
我應該對100GB數據進行外部排序,只是給出這個緩衝區我不認爲我不能存儲它13MB的內存......我一定是缺少...... – 2013-04-29 02:01:41
你的數組可能比你的堆棧大空間。使用堆空間(例如'block_t ** b =(block_t **)malloc(sizeof(block_t)* 1000);')。 – 2013-04-29 02:03:16