读书人

初始化堆栈的有关问题

发布时间: 2012-03-29 12:53:12 作者: rapoo

初始化堆栈的问题

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

我是这样理解的,请高手指正。
[解决办法]
探讨
C/C++ codeint main(int argc,char* argv[])
{int buf[1];int i;for(i=2;i<100;i++ )
{
buf[-i]=12345678;//初始化堆栈 }
printf("%d");return0;
}

读书人网 >C语言

热点推荐