im *_*sed 2 c initialization memset
在浏览维基百科之后,我偶然发现了以下代码示例,该示例将char缓冲区初始化为0,但memset在使用之前将其初始化为0.这有必要吗?如果是这样,为什么?我问的原因是我不是专家,并且这个例子清楚地表明这是编码器的意图,其中注释" /* Really initialized to zeroes */" 与初始化上的memset" /* initialized to zeroes */" 相反.
编辑:注意,我已经在维基百科页面上回滚了导致这种情况的编辑,因此它在链接中不再可见.
oua*_*uah 10
char buffer[5] = {0}; /* initialized to zeroes */
/* some declaration / statements, but no access to buffer object */
memset ( buffer, 0, sizeof buffer); /* Really initialized to zeroes */
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,调用memset完全没用.buffer已经保证初始化为0.