gpt4 book ai didi

objective-c - Malloc 的字符串包含垃圾值

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

我刚刚将 Objective-C 库转换为 C 库,希望能跨平台。但是,在我将此东西送去处理之前,一切似乎都没有问题。

就在我遇到错误的时候。

回顾几次修订,我注意到调试器中有一些东西。

像这样在 malloc 字符串之后:

char *theString = malloc(SOME_SIZE * sizeof(char));

我会看到 theString 是\x03 并且 *theString 是“3 '\003'”。

起初我假设这只是奇怪的内存,因为我没有对它进行 strcat 或任何操作,但是那个奇怪的起始字符一直存在,并在我执行类似的 malloc 的每个其他点重复出现。

按正常处理来说,这样是可以的。不幸的是,我不明白它是什么,否则,我只会做一些激烈的事情,比如切断第一个字符或其他东西。

如果我想将它安全地转换为 NSString,有人可以向我解释那是什么以及我如何处理它吗?

最佳答案

不保证 malloc 返回的值被设置为任何特定值。它只能保证指向您拥有的内存,其长度至少与您指定的一样长。如果你想让内存初始化为某个值,你需要自己做。或者交替使用 calloc 将内存清零。

关于objective-c - Malloc 的字符串包含垃圾值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/919042/

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