【发布时间】:2013-03-18 08:59:52
【问题描述】:
在 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 缓冲区时,我是否总是在分配值之前清理它(如果值在同一范围内多次分配给缓冲区)?
【问题讨论】:
-
我不知道“我们”是谁,但在使用
char[]之前,我不会“习惯性地清除内容”。实际上,如果只是字符串,我不知道我曾经这样做过。