VC中堆栈的设置

VC中堆栈的设置 [原创 2007-11-15 18:53:14]    
http://cuihq.blog.hexun.com/14707870_d.html
我顶 字号:

在调试程序时,VC下经常要用到Step Over和Step Into,对于库函数,一般都知道使用Step Over,对于自定义函数,要使用Step Into。但是有时会出现如下提示:please enter the path for CHKSTK.ASM。这是由于在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

你可能感兴趣的:(c,command,Path,compiler,output)