全局数组分配 - 堆栈还是堆?

c00*_*0fd 1 c c++ heap stack visual-studio

我正在使用Visual Studio 2008 for Windows编译以下内容.

当我声明一个全局数组时:

//.cpp file

// on a global scale
// (i.e. outside any class definition)
MY_ITEM glob_arr[1024];
Run Code Online (Sandbox Code Playgroud)

哪里

//.h file
extern MY_ITEM glob_arr[1024];

class MyClass
{
public:
    MyClass()
    {
        //Start using glob_arr
        glob_arr[0].v = 0;
        //...
    }
};
Run Code Online (Sandbox Code Playgroud)

struct MY_ITEM{
    int v;
    WCHAR chrs[64];
};
Run Code Online (Sandbox Code Playgroud)

在哪里glob_arr分配 - 从堆栈或进程堆?

Luc*_*ore 9

C++术语是自动,动态和静态存储.Globals将驻留在静态存储中 - 特定实现如何处理它取决于它们.