Я обычно работаю в Objective-C, но сейчас пытаюсь интегрировать некоторый код на C, который я тоже не знаю.
Давайте начнем с моего объекта Buffer:
@interface Buffer : NSObject {
int* buffer_;
int numFrames_;
int idNumber_;
}
@property (nonatomic) int* buffer;
@property (nonatomic) int numFrames;
@property (nonatomic) int idNumber;
В другом классе я пытаюсь динамически создавать массивы c и вставлять их в буфер моих буферных объектов.Следует отметить, что я не знаю, сколько буферных объектов мне понадобится заранее.
for (i=0; i<[arrayOfFlags count]; i++) {
NSNumber *flagObject = (NSNumber*)[arrayOfFlags objectAtIndex:i];
int flagInt = [flagObject integerValue];
Buffer *snippetBuffer = [[Buffer alloc] init];
int returnArray[44000];
snippetBuffer.buffer = returnArray;
snippetBuffer.numFrames = 44000;
snippetBuffer.idNumber = i;
int k;
// NSLog(@"creating snippet buffer at flag %d", flagInt);
for (k = 0; k < 44000; k++) {
snippetBuffer.buffer[k] = // insert some values here.
}
}
Когда я запускаю этот код, все объекты буфера имеют те же данные, что и последний созданный.Я думаю, что происходит то, что returnArray перезаписывается на каждой итерации.
Итак, как мне гарантировать, что новая память выделяется каждый раз, когда я создаю экземпляр массива ac в цикле?(Если это действительно моя проблема).
Надеюсь, этот вопрос не был слишком сложным.Пожалуйста, не стесняйтесь задавать вопросы.