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");
}
上記の関数では、 buffer が 2 回使用されます。2 番目の場所で memset() を呼び出して、 buffer 内の前のコンテンツを消去する必要がありますか? 同様に、char バッファを使用する場合、値を割り当てる前に常にクリアしますか (値が同じスコープ内のバッファに複数回割り当てられている場合)。