假设我有以下内容:
CHARLINK * _init_link(CHARLINK **link)
{
short i;
(*link)->cl = (CHARLINK **) calloc(NUM_CHARS, sizeof(CHARLINK *));
for (i = 0; i < NUM_CHARS; i++)
(*link)->cl[i] = NULL;
return (*link);
}
是否需要循环将每个元素初始化为 NULL,或者它们是否会从 calloc 自动为 NULL?
最佳答案
是的,在循环中赋值给NULL是必须的。 calloc
初始化为所有位 0。但是空指针可能不会这样表示。它取决于实现。因此赋值是必要的。
关于c - 这个指针初始化是必要的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2837354/