C++ 如何在多个函数的结构中全局存储数据

C++ 如何在多个函数的结构中全局存储数据,c++,struct,C++,Struct,我在cpp文件的顶部定义了一个简单的结构: struct sServersArray { TCHAR sName[128]; }; struct sServersArray sServers[1024] = {0}; 我要做的是将数据存储到一个函数的.Name字段中,然后在其他函数中读取数据 我知道这会占用宝贵的内存(从堆栈/堆中,我不知道是哪个或为什么),我知道应该以某种方式将其移动到类中 有人能告诉我如何将这个结构移动到一个类中,并让我的其他函数访问它吗?我担心使用太多的堆栈/堆空间,并且

我在cpp文件的顶部定义了一个简单的结构:

struct sServersArray
{
TCHAR sName[128];
};
struct sServersArray sServers[1024] = {0};
我要做的是将数据存储到一个函数的.Name字段中,然后在其他函数中读取数据

我知道这会占用宝贵的内存(从堆栈/堆中,我不知道是哪个或为什么),我知道应该以某种方式将其移动到类中

有人能告诉我如何将这个结构移动到一个类中,并让我的其他函数访问它吗?我担心使用太多的堆栈/堆空间,并且知道这样做是错误的。谢谢

struct-sServersArray
struct sServersArray
{
  std::string sName;
};

std::vector<sServersArray> sServers;
{ 字符串sName; }; std::向量服务器;
全局数据分配在单独的内存部分,而不是堆栈,也不是“堆”(空闲存储)

简单的解决方案是:将服务器名称读入
std::vector
并通过引用传递。这样,您的数据被分配到堆上,不再需要担心全局变量,并且您摆脱了任意长度限制


(您也可以创建一个全局
向量,但请不要这样做。全局数据是一种代码气味。)

比我快9秒+1,但我不会删除我的答案,因为它涵盖了不同的领域。太好了,谢谢你的代码格式。我如何在自己的代码中引用它?我需要一个类,还是只把它放在CPP文件的顶部?所以“堆”是动态分配的存储,并且只受系统内存量的限制,那么?