将指针存储到数组中的结构?苹果手机

时间:2011-12-15 12:30:10

标签: iphone objective-c c memory-management malloc

我的应用程序中有以下代码,其中mallocs内存为struct对象。在代码中多次调用此方法,每次都为新的Vector3D对象mallocing内存。

我想要做的是捕获指向malloced ShapeClass对象(C结构)的指针,以便稍后我可以释放dealloc方法中的每个对象。

有人可以告诉我如何将指针添加到数组中吗?

谢谢。

vectorCount = [floatArray.array count] / 3;
        ShapeClass *vectorArray = malloc(sizeof(Vector3D) * vectorCount);
        for (int i=0; i<vectorCount; i++) {
            vectorArray[i].x = [[floatArray.array objectAtIndex:(i*3)] floatValue];
            vectorArray[i].y = [[floatArray.array objectAtIndex:(i*3)+1] floatValue];
            vectorArray[i].z = [[floatArray.array objectAtIndex:(i*3)+2] floatValue];
        }
        return vectorArray;
// I WANT TO INSERT SOMETHING HERE TO CAPTURE THE POINTER TO vectorArray - E.G ADD IT TO AN ARRAY ?
    }
}
return NULL;
}

1 个答案:

答案 0 :(得分:1)

使用[NSValue valueWithPointer:]将其存储在容器类中。

NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
SomeObject *object = [[SomeObject alloc] init];

//Store the pointer to object
[dictionary setValue:[NSValue valueWithPointer:object] forKey:@"object"];