OC 面试题1

来源:互联网 发布:linux 类似telnet 编辑:程序博客网 时间:2024/05/21 10:00

问:这段代码有问题吗?

NSString *str = [[NSStringalloc] init];

    [str retain];

    [str retain];

    str = @"aa";

    [str release];

    [str release];

    [str release];

初看有人认为:开辟了3次空间,又释放了3次.程序没有问题.但实际是程序存在两个大问题

错误点是:1.内存泄漏.2.常量区内存由系统管理

str = @"aa"后指针变量指向了另一块常量地址.之前开辟的空间造成了内存泄漏.而常量区的内存由系统自动管理.

0 0
原创粉丝点击