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

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

2012-03-14 
局部数组占用内存的方式什么样的?局部数组占用内存的方式什么样的?例如:bool SetValue(int iVal){BYTE byB

局部数组占用内存的方式什么样的?
局部数组占用内存的方式什么样的?
例如:
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
[解决办法]
函数内定义的非静态变量均被分配在栈上

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

热点排行