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

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

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