[英]Maximum array size in objective C on iPhone?
我有一个非常大的数组(96,000个GLfloat类型的元素)。 以前是24,000个元素,直到我进行了一些更改。 现在我崩溃了。 我还没有做很多调试工作,但是当我注意到我的一个阵列变得多么荒谬时,我认为这值得研究。 因此,我唯一的问题是,单个数组是否96,000个元素(或384,000个字节)是否过多?
在堆上应该没问题,但是您应该避免在堆栈上分配该大小的内存。 因此,您应该使用malloc/free
或new[]/delete[]
创建和销毁该大小的数组。
如果设备的内存不足,则可以预期对大量内存的请求偶尔会返回NULL
。 有些应用程序(例如照片/图像处理)要求分配数十兆字节的内存,这比384 KiB分配的内存大很多倍。
阵列大小没有上限,请保存设备上的可用RAM量。
我不认为它太大。 某些图像资源会占用那么多或更多的连续空间而不会出现问题。 例如,一个400x400px的图像大约需要160,000 * 4 = 640,000字节的内存。 我认为问题出在其他地方。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.