gpt4 book ai didi

c malloc() - 我需要为空终止符分配空间吗

转载 作者:太空宇宙 更新时间:2023-11-04 03:19:43 25 4
gpt4 key购买 nike

我在下面有一段代码,将文本 _dut1_serial_log.txt 附加到提供的文件名中。提供的文件名是 targetP 指向的结构中的一个变量。

文本 _dut1_serial_log.txt 的长度为 20 个字符。我的问题是当我为空终止符调用 malloc 时是否需要 +1

char *filename_ending = "_dut1_serial_log.txt";
char *filename_with_extension;
prv_instance_t *targetP = threadParams->targetP;

/*append filename ending "_dut1_serial_log.txt" to filename supplied*/
filename_with_extension = malloc(strlen(targetP->output_filename)+1+20);
strcpy(filename_with_extension, targetP->output_filename); /* copy name into the new var */
strcat(filename_with_extension, filename_ending); /* add the extension */

最佳答案

strcpystrcat 都会将 NUL 终止符从源字符串复制到目标缓冲区。

因此,您确实需要在目标缓冲区中为该终止符保留空间。

为避免任何疑问,"_dut1_serial_log.txt" 是一个 const char[21] 类型。

关于c malloc() - 我需要为空终止符分配空间吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47652159/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com