将指针数组初始化为NULL

时间:2014-03-12 00:16:19

标签: c++ c arrays

这是我在本网站上的第一篇文章。

我正在尝试将一个包含30个指针的数组初始化为NULL。数组存储为全局,我在init()函数中进行初始化,如下所示:


static headerT* free_list[30];

...

init() { free_list[30] = {NULL}; }


但是,我得到以下编译器错误 - “错误:'{'token'之前的预期表达式。

关于我可能做错什么的任何想法?

提前致谢。

3 个答案:

答案 0 :(得分:3)

使用静态存储持续时间分配的对象的值已初始化。您的指针已初始化为nullptr

答案 1 :(得分:2)

  1. 如果arr是n个元素的数组,则第一个单元格为arr[0],最后一个单元格为arr[29]arr[30]位于数组之外,引用它会导致各种问题。
  2. 您无法为整个阵列分配值。使用for循环访问每个单元格。
  3. 因此我们得到:

    init() 
    { 
        int i;
        for(i=0; i<30; i++)
            free_list[i] = NULL; 
    }
    

答案 2 :(得分:-2)

我更喜欢memset

memset(free_list,0x0,30 * sizeof(headerT *));