gpt4 book ai didi

C - `0` 使用 malloc 出现特殊字符

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

我在串联期间使用 malloc 时遇到一些问题。似乎当我 malloc 指针时,会自动添加一个字符。这个附加在已经工作的许多循环之后,我在之前设置的 2 行空指针上使用 malloc,我只使用存在的数字,cur_len, sub_len

看似正常的想法,却突然自动弹出了这个特殊字符。实际上,(对我来说)它在打印时似乎显示为单个字符(见图2),但是当我通过lldb检查new_str值时,'0'(带有 block 引号)是三个字符...

lldb representation打印字符时: enter image description here

如果有人能给我一个线索,它尝试了一些东西,暂时无法理解。谢谢你,我希望我说得清楚了。

编辑:
我的错误 --> 我没有覆盖 malloc 从第一个索引返回的指针,并且因为 malloc 可能会在内存池中提供一些不“干净”的内存,所以您(必须?)覆盖来自第一个索引的新指针索引0。(实际上我认为不这样做是没有意义的。)

最佳答案

malloc() 不会初始化您分配的内存空间,它通常会包含以前使用该内存空间的垃圾。

如果您想强制分配的内存为零,请改用calloc()。注意calloc()takes different parameters .

关于C - `0` 使用 malloc 出现特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52415850/

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