问:这段代码有问题吗?
NSString *str = [[NSString alloc] init];
[str retain];
[str retain];
str = @"aa";
[str release];
[str release];
[str release];
初看有人认为:开辟了3次空间,又释放了3次.程序没有问题.但实际是程序存在两个大问题
错误点是:1.内存泄漏.2.常量区内存由系统管理
str = @"aa"后指针变量指向了另一块常量地址.之前开辟的空间造成了内存泄漏.而常量区的内存由系统自动管理.