gpt4 book ai didi

objective-c - 返回 C 结构数组

转载 作者:太空宇宙 更新时间:2023-11-04 01:40:07 25 4
gpt4 key购买 nike

你好 stackoverflow 的其他成员?

A类中的结构声明

struct PointSprite 
{
GLfloat x;
GLfloat y;
GLfloat size;
Color4f color;
} ParticleSystems[MAXIMUM_PARTICLES_ON_SCREEN];
// I generally put some stuffs in ParticleSystem array.
// for ex) struct PointSprite *ps = &ParticleSystems[index];
// and it works well on the class A, but I want to get class B to access this array.

我的问题是,我应该如何返回“ParticleSystems”数组,以便其他类可以访问它?我试过下面的代码来返回指针,但编译器给了我一个警告。

- (struct ParticleSystems *) commitParticles
{
struct ParticleSystems *ptr = &ParticleSystems; // it said, assigning incompatible pointer type

return ptr;
}

或者我是否需要分配“ParticleSystems”数组?请帮忙 !谢谢

最佳答案

如果您在函数内部创建数组,那么您应该使用 new 动态分配它,然后返回指向它的指针。

您不能从函数返回数组,您必须返回指向它的指针。

示例代码:

ParticleSystems* doSomethingInteresting()
{
ParticleSystems *ptr = new ParticleSystems[MAXIMUM_PARTICLES_ON_SCREEN];

//do the processing

return ptr;

}

调用者获取返回的动态分配数组的所有权,需要释放它以避免内存泄漏:

delete []ptr;

关于objective-c - 返回 C 结构数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6959507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com