今天運行程序的時候出現**.exe 中的 0x0053b1f7 處未處理的異常: 0xC00000FD: Stack overflow。明顯的可以看出是棧溢出。
http://topic.csdn.net/u/20080418/22/9a9eb9b4-62b3-4619-89b7-4be1a0157905.html
http://topic.csdn.net/u/20101022/16/2975975a-b63e-40b7-9195-a4a817acb423.html
在上面瞭解到:
By default, the program stack for x86 and x64 machines is 1MB (1048576 bytes)
所以當在棧上申請大於1M是會出現棧溢出。
http://msdn.microsoft.com/en-us/library/8cxs58a6.aspx這裏提到可以改變默認的棧的大小,這我沒有嘗試,因爲我有好多需要申請棧空間的地方,基本上都小於默認值,所以改變默認值覺得沒必要。
所以我用了一種方法就是動態申請內存,讓內存在堆上分配。
或者申請全局變量也可以,在靜態存儲區。