C-使用malloc

时间:2018-09-20 00:28:36

标签: c malloc concatenation lldb

在连接过程中使用malloc时遇到一些麻烦。似乎当我分配指针时,会自动添加一个字符。经过许多已经工作的循环之后,我在之前设置2行的空指针上使用了malloc,我只使用存在的数字cur_len, sub_len

这似乎是正常的想法,但此刻此特殊字符会自动弹出。实际上,对我来说,它似乎在打印时显示为单个字符(参见图2),但是当我通过lldb检查new_str值时,'0'(带有blockquote)使用三个字符...

lldb representation 印刷人物时: enter image description here

如果有人可以给我一个线索,它尝试了一些东西,暂时无法理解。多亏了您,我希望我能清楚。

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

1 个答案:

答案 0 :(得分:3)

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

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