Iphone 如何为(objective-c)中的整数(如(c++)动态分配内存? C++代码: n = 25; int *p; p = new int[n];

Iphone 如何为(objective-c)中的整数(如(c++)动态分配内存? C++代码: n = 25; int *p; p = new int[n];,iphone,objective-c,cocoa-touch,Iphone,Objective C,Cocoa Touch,谢谢 -这段代码将以动态变化的大小循环,我需要设置大小,并且需要能够声明为整数或长,NSNumber可能会变得太慢,并且在类型更改中会占用太多内存 你的问题在于这个假设: NSNumber* myNumber = [[NSNumber alloc] initWithInt:1234]; // ... [myNumber release]; NSNumber可能会变得太慢,并且在类型更改中会占用太多内存 我建议使用NSNumber,直到有经验证据证明对象包装器在代码中造成瓶颈为止。在那之前,你是

谢谢


-这段代码将以动态变化的大小循环,我需要设置大小,并且需要能够声明为整数或长,NSNumber可能会变得太慢,并且在类型更改中会占用太多内存

你的问题在于这个假设:

NSNumber* myNumber = [[NSNumber alloc] initWithInt:1234];
// ...
[myNumber release];
NSNumber可能会变得太慢,并且在类型更改中会占用太多内存

我建议使用NSNumber,直到有经验证据证明对象包装器在代码中造成瓶颈为止。在那之前,你是在过早地优化

一般规则是:

让它发挥作用。 快点。
你正试图扭转这些步骤。不要这样做。

你的问题在于这个假设:

NSNumber可能会变得太慢,并且在类型更改中会占用太多内存

我建议使用NSNumber,直到有经验证据证明对象包装器在代码中造成瓶颈为止。在那之前,你是在过早地优化

一般规则是:

让它发挥作用。 快点。

你正试图扭转这些步骤。不要这样做。

我害怕这样分配内存。取决于iphone,它可能会崩溃@克里斯汀·马丁森:这比新的int+delete更可能崩溃吗?这是在引擎盖下的事情。@我想你误解了C++代码。它等于int n=25;int*p=mallocsizeofint*p=n;。它不为25整数分配空间。我要纠正它。希望你不介意。@克里斯汀·马丁森:嗯,你是想写p=newint[n]吗?因为除非我现在非常高,否则这将分配一个n int数组,而您的代码段分配一个值为n的int。随着原始问题的更改,我返回到我的版本。我害怕像这样分配内存。取决于iphone,它可能会崩溃@克里斯汀·马丁森:这比新的int+delete更可能崩溃吗?这是在引擎盖下的事情。@我想你误解了C++代码。它等于int n=25;int*p=mallocsizeofint*p=n;。它不为25整数分配空间。我要纠正它。希望你不介意。@克里斯汀·马丁森:嗯,你是想写p=newint[n]吗?因为除非我现在非常高,否则这将分配一个n int数组,而您的代码段分配一个值为n的int。随着原始问题的更改,我回滚到我的版本。可能会变成。。。?你测量过了吗?发现它太慢了/内存密集了吗?直到你测试它,测量它,你最好不要做这个假设。我已经写了很多代码在C和C++中。在CPU和内存密集型应用中,交换数据类型是消耗的,也是RAM和高速缓冲存储器中的瓶颈。@克里斯汀-如果你在C和C++中编写了很多代码,那么你对“OMZ”提出的答案有什么担心?这非常简单,因为您已经获得了为整数动态分配内存的标准ObjC和C方法。你能更详细地解释一下你的问题是什么吗?也许这会帮助我们回答你的问题。可能会变成。。。?你测量过了吗?发现它太慢了/内存密集了吗?直到你测试它,测量它,你最好不要做这个假设。我已经写了很多代码在C和C++中。在CPU和内存密集型应用中,交换数据类型是消耗的,也是RAM和高速缓冲存储器中的瓶颈。@克里斯汀-如果你在C和C++中编写了很多代码,那么你对“OMZ”提出的答案有什么担心?这非常简单,因为您已经获得了为整数动态分配内存的标准ObjC和C方法。你能更详细地解释一下你的问题是什么吗?也许这会帮助我们回答你的问题。
int n = 25;
int *p = calloc(n, sizeof(int));
//...
free(p);