iPhone内存管理的堆栈和堆问题

时间:2010-12-25 05:26:44

标签: iphone objective-c memory-management stack heap

*为什么Objective-C中的所有对象都在堆中而不是在堆栈中分配?

如果我们使用Objective-C和C ++进行编程怎么样?

3 个答案:

答案 0 :(得分:3)

目前尚不清楚你在问什么。

如果您询问NSString* str = @"hello";之类的内容,那么您在链接到的问题中就会回答这个问题。

为什么没有堆?没有意义。 iOS应用程序中有很多堆,并且从中分配了对象。

你提到的“帖子”中提到的“自动对象”和/或auto_ptr与Objective-C完全无关。

请澄清你的问题。

答案 1 :(得分:1)

  1. 所有对象C对象都应该在堆栈中分配? (我想是的)

    否。正如您的问题中的引文所说,“Objective-C运行时不允许在堆栈上实例化对象”

  2. 在C ++中,有内存堆栈,所以对于iOS应用程序,还有堆栈吗? (我想是的)

    是的,Objective-C中有一个堆栈。对象根本就没有在那里分配。

答案 2 :(得分:0)

为了更好地理解NSString文字,请参阅以下主题:What does assigning a literal string to an NSString with "=" actually do?