初始化堆栈的问题
- C/C++ code
int main(int argc, char* argv[]){ int buf[1]; int i; for(i=2;i<100;i++ ) { buf[-i] = 12345678; //初始化堆栈 } printf("%d"); return 0;}偶然在网上看到一段代码,请问什么是初始化堆栈,这代码的原理是什么,还有初始化堆栈又是什么意义呢?
[解决办法]
buf[1]是分配在栈上,栈是从高地址向低地址增长。
所以buf[-i]处理的都是未分配的栈空间。
自己写汇编有可能要写这样的代码。但C/C++中没必要。
[解决办法]
- C/C++ code
buf[-i] = 12345678; //初始化堆栈
[解决办法]
堆栈的地址是从高到低的
buf是栈底,栈顶是buf-98*4
对buf[-i]的循环初始化就是 把从栈底到栈顶的内容都设置了12345678
我是这样理解的,请高手指正。
[解决办法]