我按照如何memset char数组与空终止字符?使用C memsetapi 时添加空终止符.
代码有效; 由于null终止符,我不再在malloc'd char数组的末尾添加奇怪的内存中字符.
/* memset does not add a null terminator */
static void yd_vanilla_stars(size_t *number_of_chars, char *chars_to_pad)
{
memset(chars_to_pad, 0, *number_of_chars+1);
memset(chars_to_pad,'*',*number_of_chars);
}
Run Code Online (Sandbox Code Playgroud)
是否有更优雅的方式实现同样的目标?
你可以这样做:
memset(chars_to_pad, '*', *number_of_chars);
chars_to_pad[*number_of_chars] = '\0';
Run Code Online (Sandbox Code Playgroud)
另外,为什么number_of_chars是指针?