我对null char有疑问。我有一个缓冲区char buffer_2[245]
memset(buffer_2, 0, 245);
strcpy(buffer_2, "Test");
strcat(buffer_2, "\0");
我需要第三行吗?因为不是\ 0自动附加。
答案 0 :(得分:2)
我需要第三行吗?因为不是\ 0自动附加。
您不需要第三行。 strcpy
附加'\0'
。
来自man strcpy
:
strcpy()
函数复制src指向的字符串, 包括终止空字节('\0'
)到dest指向的缓冲区。字符串可能不重叠,并且目标字符串 dest必须足够大才能收到副本。小心缓冲 超支! (见BUGS。)
另请注意:"Test"
的类型为const char [5]
,其值为'T'
,'e'
,'s'
,'t'
和{{1} }。