我在串联期间使用 malloc 时遇到一些问题。似乎当我 malloc 指针时,会自动添加一个字符。这个附加在已经工作的许多循环之后,我在之前设置的 2 行空指针上使用 malloc,我只使用存在的数字,cur_len, sub_len
。
看似正常的想法,却突然自动弹出了这个特殊字符。实际上,(对我来说)它在打印时似乎显示为单个字符(见图2),但是当我通过lldb检查new_str值时,'0'
(带有 block 引号)是三个字符...
如果有人能给我一个线索,它尝试了一些东西,暂时无法理解。谢谢你,我希望我说得清楚了。
编辑:
我的错误 --> 我没有覆盖 malloc 从第一个索引返回的指针,并且因为 malloc 可能会在内存池中提供一些不“干净”的内存,所以您(必须?)覆盖来自第一个索引的新指针索引0。(实际上我认为不这样做是没有意义的。)
最佳答案
malloc()
不会初始化您分配的内存空间,它通常会包含以前使用该内存空间的垃圾。
如果您想强制分配的内存为零,请改用calloc()
。注意calloc()
takes different parameters .
关于C - `0` 使用 malloc 出现特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52415850/