我按照如何使用C的memset api添加空终止字符?的方法,添加了一个空终止符号。
这段代码有效了,由于添加了空终止符号,我不再让malloc的字符数组末尾产生奇怪的内存字符。
/* 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);
}
有没有更优雅的方法来实现相同的功能?
malloc()
为数组分配内存,为什么不使用calloc()
来获得零初始化的内存分配呢? - ad absurdum