顺序栈的栈顶指针 当栈满时 指向?
顺序栈的栈顶指针 当栈满时 指向 最后一个栈元素的上面,那个地址是不属于栈的,
会不会有问题?
注 严版 C语言数据结构
Push函数是这样压栈的
*S.top ++ = e;
栈指针指向刚压入元素的位置的上面。
[解决办法]
VC调试时按Alt+8,TC或BC用TD调试,打开汇编窗口看每句C对应的汇编不就啥都明白了吗。
(Linux或Unix下应该也可以在用GDB调试时,看每句C对应的汇编。)
计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……
[解决办法]
让指针指向数组第0个元素的前面或最末元素的后面,其效果是未定义的!让指针指向数组最末元素后面的那个位置是合法的(但指向0元素前面是非法的),但对这个指针执行间接访问可能会失败,再往后也非法了!(来自《C与指针》)
[解决办法]
要是想深入了解栈,估计要看操作系统、编译器相关的书籍了。
满肯定有满的情况,不过貌似现在都处理好了,要么提示你非法访问,要么有虚拟内存映射栈空间,
所以在现在应该不会遇到这种情况了吧!
不像以前,内存小的可怜,一不小心就用满了。
[解决办法]
恩,会有问题的。