use*_*747 6 c malloc initialization
可以说我有以下内容:
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);
}
Run Code Online (Sandbox Code Playgroud)
循环是将每个元素初始化为NULL还是从calloc自动为NULL?
这取决于您的系统,但在绝大多数情况下,它是可以的. calloc()返回一个填充零的缓冲区.但是,计算机上的空指针可能不是0的位模式.在空指针不为零的机器上,您可能最终遇到麻烦.