将第一个字节设置为0或使用memset"重置"整个缓冲区

Che*_*eng 5 c

在C编程中,每当我尝试第一次执行cat时,我都需要

TCHAR file_name[1024];
// Use memset or set the first byte to 0?
file_name[0] = 0;
_tcscat(file_name, TEMP_DIRECTORY_PATH);
_tcscat(file_name, file);
Run Code Online (Sandbox Code Playgroud)

我看到大多数程序员都在使用memset.但是,对我来说,我只是将第一个字节设置为0,让_tcscat知道从哪里开始.

我不确定是否有任何缺点/陷阱,而不是使用memset?

谢谢.

Art*_*ius 3

您只需将第一个字符设置为 0即可。

然而,更简单的方法是

TCHAR file_name[1024];
_tcsncpy(file_name, TEMP_DIRECTORY_PATH, 1024);
_tcscat(file_name, file);
Run Code Online (Sandbox Code Playgroud)