First-chance exception in platform.exe: 0xC00000FD: Stack Overflow.
please enter the path for CHKSTK.ASM. AfxWinMain
解決方法:
在調試程式時,VC下經常要用到Step Over和Step Into,對于庫函數,一般都知道使用Step Over,對于自定義函數,要使用Step Into。但是有時會出現如下提示:please enter the path for CHKSTK.ASM(check stack)。這是由于在VC調試過程中,配置設定的堆棧空間不夠引起的。
我們知道,C中的參數傳遞是傳值的,如果傳遞是一個結構體,而且該結構體内含有大量的數組空間時,很容易引起記憶體溢出,進而導緻錯誤。解決方法有兩個:
1.減少函數傳遞的參數的個數和大小,少使用記憶體空間。
2.在VC++下,盡量使用引用傳遞,進而減少參數傳遞占用的堆棧空間。
3.修改VC的配置。方法如下:
Project → Setting →Link
将 Category 選項改成 Output
可以看到有一個 Stack Allocations 當中
Reserve → virtual memory
Commit → physical memory
Default 的 stack size 是 1MB
最大值為 0xffffffff (4,294,967,295)
或是可以在 compiler 完後..
在 command mode 下
下參數 /Fnumber , number 即 set stack size ..
number可以用十進位表示, 機關是 bytes