C 指针内存管理

// C 指针的内存管理

// C 指针在 Swift中被冠以 unsafe 的另一个是无法对其进行自动的内存管理,需要手动的申请和释放内存。

class MyClass {    

var a = 1    

deinit {        

print("deint")   

 }

}

var pointer : UnsafeMutablePointer!

pointer = UnsafeMutablePointer.allocate(capacity: 1)

pointer.initialize(to: MyClass())

print(pointer.pointee.a)    

// 输出 1

// 这里必须释放

// deallocate, deinitiallize 必须和 allocate, initialize 成对出现pointer.deinitialize()

pointer.deallocate(capacity: 1)

// 这里再调用 pointer 就会崩溃pointer = nil

// 原则是: 谁创建,谁释放

// tm 是结构体var x: UnsafeMutablePointer!

var t = time_t()

time(&t)

x = localtime(&t)

x = nil

// 上面的例子,我们没有创建,也就不用我们自己释放了

// 最后,指针的内存申请也可以使用 malloc 或者 calloc 来完成,这种情况下对应的就需要使用 free

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容