Hello stackoverflow fellow members?
Struct Declaration in class 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.
My question is, how am I suppose be return the array of ‘ParticlelSystems‘ array so that other class can access to it? I have tried below code to return the pointer, but compiler gives me a warning.
- (struct ParticleSystems *) commitParticles
{
struct ParticleSystems *ptr = &ParticleSystems; // it said, assigning incompatible pointer type
return ptr;
}
Or should I need to allocate the ‘ParticleSystems‘ array? Please help ! Thanks
If you are creating the array inside the function then you should dynamically allocate it using
newand then return a pointer to it.You cannot return arrays from a function, you will have to return a pointer to it.
Sample Code:
The caller takes the ownership of the returned dynamically allocated array and needs to deallocate it to avoid memory leaks: