大佬教程收集整理的这篇文章主要介绍了Swift中免费的C-malloc()内存?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
char *the_function(const char *);
在Swift中,我使用它像这样:
var ret = the_function(("something" as NSString).UTF8String) let val = String.fromCString(ret)!
请原谅我对Swift的无知,但通常在C中,如果the_function()是malloc的内存并返回它,那么其他人需要在某个时候释放()它.
这是由Swift以某种方式处理还是我在这个例子中泄漏内存?
提前致谢.
let ret = the_function("something") // returns pointer to malloc'ed memory let str = String.fromCString(ret)! // creates Swift String by *copying* the data free(ret) // releases the memory println(str) // `str` is still valid (managed by Swift)
请注意,Swift String会自动转换为UTF-8
传递给带有const char *参数的C函数的字符串
如String value to UnsafePointer<UInt8> function parameter behavior所述.
这就是为什么
let ret = the_function(("something" as NSString).UTF8String)
可以简化为
let ret = the_function("something")
以上是大佬教程为你收集整理的Swift中免费的C-malloc()内存?全部内容,希望文章能够帮你解决Swift中免费的C-malloc()内存?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。