在 C 编程中,字符缓冲区用于字符串实现。通常我们在使用任何范围内的任何字符缓冲区之前都会清除内容。当 char 缓冲区在同一范围内多次使用时,我需要澄清如何清理 char 缓冲区。例如,在下面的函数中,我使用的是 char buffer[BUF_SIZE]。
void function foo(char *p_char)
{
char buffer[BUF_SIZE];
memset(buffer, '\0', BUV_SIZE-1);
strcpy(buffer, p_char);
..
..
// after some codes.
strcpy(buffer, "second time use of buffer");
}
在上面的函数中,缓冲区被使用了两次,第二次我需要调用 memset() 来清除缓冲区中的先前内容吗?同样,当使用 char 缓冲区时,我是否总是在分配值之前清理它(如果值在同一范围内多次分配给缓冲区)?