當我嘗試調試我的C程序時,甚至在編譯器開始執行任何行之前,我得到: 「HistsToFields.exe中的0x00468867未處理異常:0xC00000FD:堆棧溢出。C中的堆棧溢出錯誤在執行任何步驟之前
我不知道如何發現問題,因爲程序甚至沒有開始執行任何行(或至少這是我可以從編譯器調試窗口中看到的)。如果我的程序沒有任何行被執行,怎麼知道是什麼導致溢出? 「當調試器打破它指向一條線在chkstk.asm」
我在win7上使用Microsoft Visual Studio 2008。
我設置堆棧保留大小3億
PS:用來執行罰款過,但另一臺機器上的程序。
我有一個csv格式的數據庫(120000 x 60),我需要將其更改爲空格分隔。該程序(我沒有寫我自己)定義輸出文件的結構:
`struct OutputFileContents {
char Filename[LINE_LEN];
char Title[LINE_LEN];
int NVar;
char VarName[MAX_NVAR][LINE_LEN];
char ZoneTitle[LINE_LEN];
int NI;
int NJ;
int NK;
double Datums[MAX_NVAR];
double Data[MAX_NVAR][MAX_NPOINT];`
這最後一個數組「數據[] []」就是包含了所有的輸出。因此是巨大的尺寸。 該數組大小「MAX_NPOINT」在項目中的標題源文件中設置,該標題由項目中的多個程序使用。
非常感謝您提前。 艾哈邁德。
+1堆棧溢出引用。 – 2011-06-07 15:43:04
你有一個無限遞歸的地方。 – 2011-06-07 15:43:24
如果你得到一個異常,那麼你的編譯器不僅已經啓動,它已經完成,並且你已經運行了你的程序(失敗了)。 – Arafangion 2011-06-07 15:45:43