这是我在本网站上的第一篇文章。
我正在尝试将一个包含30个指针的数组初始化为NULL。数组存储为全局,我在init()函数中进行初始化,如下所示:
static headerT* free_list[30];
...
init() {
free_list[30] = {NULL};
}
但是,我得到以下编译器错误 - “错误:'{'token'之前的预期表达式。
关于我可能做错什么的任何想法?
提前致谢。
答案 0 :(得分:3)
使用静态存储持续时间分配的对象的值已初始化。您的指针已初始化为nullptr
。
答案 1 :(得分:2)
arr
是n个元素的数组,则第一个单元格为arr[0]
,最后一个单元格为arr[29]
。 arr[30]
位于数组之外,引用它会导致各种问题。for
循环访问每个单元格。因此我们得到:
init()
{
int i;
for(i=0; i<30; i++)
free_list[i] = NULL;
}
答案 2 :(得分:-2)
我更喜欢memset
memset(free_list,0x0,30 * sizeof(headerT *));