栈满,追加存储空间怎么理解
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;//修改栈的大小}
[解决办法]