如何在C中创建静态易变结构数组?

时间:2015-10-14 12:27:51

标签: c arrays struct static volatile

正如标题所说,我接手的一个项目有一个静态易失性结构,在连接到WiFi网络时基本上保存网络数据。我需要创建这些结构的数组来保存以前网络的数据。

这就是我想要复制的结构:

static volatile struct
{
    BYTE        MySSID[32]; 
    BYTE        SsidLength;             
    BYTE        SecurityMode;           
    BYTE        SecurityKey[32];           
    BYTE        SecurityKeyLength;
    BYTE        dataValid;
    BYTE        networkType;
    BYTE        IsLinked;
    BYTE        ConnectionID;
} NetworkStruct;

这是我创建数组的失败尝试中最近的一次,我可以将此结构中的数据复制到:

static volatile struct
{
    BYTE        MySSID[32]; 
    BYTE        SsidLength;             
    BYTE        SecurityMode;           
    BYTE        SecurityKey[32];           
    BYTE        SecurityKeyLength;
    BYTE        dataValid;
    BYTE        networkType;
    BYTE        IsLinked;
    BYTE        ConnectionID;
} SavedNetworks[10];

到目前为止,这次和其他所有尝试都会引发错误。

以上是上述尝试引发的错误:

  

链接错误:无法分配.nbss,size = 944字节,   attributes = bss near
  链接错误:无法分配数据内存

1 个答案:

答案 0 :(得分:3)

  

链接错误:无法分配.nbss,size = 944字节

部分

链接器无法在.bss部分中分配数组所需的内存,这是所有未初始化的静态存储持续时间变量所在的位置。你对静态/全局变量使用太多内存,就这么简单。

如何解决这个问题取决于具体的系统。