我想在ios里使用C的数组,如何能把空间开到最大?

float squareVertexData[999999] = { };

我想在ios里开辟一个float数组,(不能使用NSArray,用到的OpenGL库不识别)。怎么能开辟到最大,如果我把数开到九十九万,viewdidload就直接崩了

还有就是我能不能顶一个返回值为float数组的方法,并将此数组返回,试了下没成功,求个基本语法,试了很多没成功。

阅读 4k
2 个回答

一看是OpenGL就知道是你...

float squareVertexData[999999] = { };

你这样声明的静态数组,在内存空间里是连续的,如果内存中没有这么长的连续内存,就拉倒了。所以要使用动态数组

float *a=(float *)malloc(n*sizeof(float));//定义动态数组 相当于float a[n]  

祝你好运。

PS: 你虽然开了一个999999的数组,但其实并不一定要用完对吧,静态数组的话,那个999999是要在代码里写死的;换了动态以后,数组长度n,你可以根据你的实际需要来分配,还可以在不够用时候扩容。其实这是个C语言问题。

float squareVertexData[999999] = { }; C 不允许这种写法吧。好歹分配个值 float squareVertexData[999999] = {1.0};

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题