我有一个关于数组中对象的内存分配的问题。我正在寻找创建一个对象数组,但在编译时,我无法知道我需要多少个对象,因此不想保留比需要更多的内存。
我想做的是根据需要分配内存。我想要这样做的方式是,当用户单击“添加”按钮时,数组会增加一个额外的对象,并分配新对象所需的内存。
在我对Objective C的新手理解中(大约20年前我是一名专业程序员,最近才开始重新编写代码)我想出了以下代码段:
首先,我声明了我的对象:
NSObject *myObject[1000]; // a maximum number of objects.
然后,当用户单击“添加”按钮时,它会运行一个带有分配代码的方法:(注意:变量 i 从值 1 开始,每次单击“添加”按钮时都会增加)
++i
myObject[i] = [[NSObject alloc] init];
因此,我希望只为实际需要的对象分配内存,而不是立即为所有 1000 个数组对象分配内存。
我是否正确解释了这一点?换句话说,我的解释是否正确,声明中声明的数组元素的数量是数组元素的最大可能数量,而不是当时分配了多少内存?如果这是正确的,那么理论上,声明:
NSObject *myObject[10000];
不会比声明更多的内存:
NSObject *myObject[5];
有人可以确认我是否正确理解了这个过程,如果我把这件事弄混了,请赐教。:)
谢谢!