读书人

栈满追加存储空间如何理解

发布时间: 2012-10-31 14:37:32 作者: rapoo

栈满,追加存储空间怎么理解
S.stacksize 为100
STACTINCREMENT为10
if(S.top -S.base >S.stacksize ){
S.base=(int *)realloc(S.base,(S.stacksize+STACTINCREMENT)*sizeof(int));此时S.base是不是有110个空间了?
if(!S.base)exit(0);
S.top =S.base + S.stacksize ;S.top 是不是有210个空间了?
S.stacksize +=STACTINCREMENT;
}
新手不懂,望能把这段代码解释清楚点。。

[解决办法]

C/C++ code
S.stacksize 为100STACTINCREMENT为10if(S.top -S.base >S.stacksize ){S.base=(int *)realloc(S.base,(S.stacksize+STACTINCREMENT)*sizeof(int));//如果分配成功, 是的.if(!S.base)exit(0);S.top =S.base + S.stacksize ;//以S.base为首地址 偏移sizeof(S.base的类型) * S.stacksize, 这时S.top指向新栈顶S.stacksize +=STACTINCREMENT;//修改栈的大小}
[解决办法]
探讨

引用:
C/C++ code

S.stacksize 为100
STACTINCREMENT为10
if(S.top -S.base >S.stacksize ){
S.base=(int *)realloc(S.base,(S.stacksize+STACTINCREMENT)*sizeof(int));//如果分配成功, 是的.
if(!S.base)exi……

读书人网 >C语言

热点推荐