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

发布于 2022-09-02 00:53:28 字数 205 浏览 13 评论 0

float squareVertexData[999999] = { };

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

吹梦到西洲 2022-09-09 00:53:28

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

float squareVertexData[999999] = { };

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

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

祝你好运。

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

一抹微笑 2022-09-09 00:53:28

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文