gpt4 book ai didi

c - malloc 分配中的额外字节

转载 作者:行者123 更新时间:2023-11-30 20:05:55 24 4
gpt4 key购买 nike

我有这条路:./demodir/a1/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1

当我仅使用一 (1) 个额外字节(对于“\0”)为字符串中的路径名分配空间时,字符串的打印效果会有所不同。

path = (char *) malloc( strlen(dirname) + strlen(direntp->d_name) + 1 );    

打印:./demodir/a1!�/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1

� ....是问题

除了内容的长度之外,我还需要将所有“+2”字节分配给内存。为什么会这样?

最佳答案

您需要额外的字节来包含将目录名与基本名称分隔开的斜杠“/”。

char  *path = (char *) malloc( strlen(dirname) + 1 + strlen(direntp->d_name) + 1 );  
sprintf(path, "%s/%s", dirname, dirent->d_name)

关于c - malloc 分配中的额外字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28705074/

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