我的应用程序中有以下代码,其中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;
}
答案 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"];