0
我创建了一个可变的字符串对象。现在我已经多次释放该对象,即使我只分配了一次。根据基本的内存管理规则,这是错误的。但是,它会崩溃,但这从来没有发生过。我期待着一些EXC_BAD_ACCESS错误。为什么EXC_BAD_ACCESS不会发生?
我收到的错误:
malloc: *** error for object 0x6d5ac60: double free
*** set a breakpoint in malloc_error_break to debug
为什么应用程序不崩溃?
NSMutableString *firstOwner = [[NSMutableString alloc] init];
[firstOwner release];
[firstOwner release];
[firstOwner release];
NSMutableString *temporaryObject = firstOwner;
[temporaryObject release];
[temporaryObject release];
你已经告诉内存管理系统你不再需要这块内存了。之后,它可能会或可能不会将其用于其他目的。没有规则可以保证它会被设置为导致崩溃的某个值。 –