首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

初始化堆栈的有关问题

2012-03-29 
初始化堆栈的问题C/C++ codeint main(int argc, char* argv[]){int buf[1]int ifor(i2i100i++ ){buf

初始化堆栈的问题

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;
}

热点排行