读书人

局部数组占用内存的方式什么样的?该如

发布时间: 2012-03-14 12:01:13 作者: rapoo

局部数组占用内存的方式什么样的?
局部数组占用内存的方式什么样的?
例如:
bool SetValue(int iVal)
{
BYTE byBuf[1024];
memset(byBuf,0,sizeof(byBuf));

return true;
}
int main()
{
SetValue(1);
return 0;
}

byBuf的是如何存储的,是在栈上,还是在堆上呢?或者说是编译的时候就分配好了,还是运行时分配的临时内存?

[解决办法]

探讨
局部数组占用内存的方式什么样的?
例如:
bool SetValue(int iVal)
{
BYTE byBuf[1024];
memset(byBuf,0,sizeof(byBuf));

return true;
}
int main()
{
SetValue(1);
return 0;
}

byBuf的是如何存……

[解决办法]
准确地说,在栈上。每次调用该函数时都会分配。
[解决办法]
一般是在该线程的执行栈上。
[解决办法]
栈上的,LZ可以看一下这篇文章:C/C++程序的内存分布http://blog.csdn.net/seucs/article/details/6358965
[解决办法]
函数内定义的非静态变量均被分配在栈上

只有程序运行到该函数所处代码段,才由操作系统进行分配,该函数调用完毕后,立即归还。

读书人网 >C++

热点推荐