我在Objective-C中編寫項目,但我很依賴普通的C,因爲涉及到OpenGL。我分配的內存是寫入
我有我從文件中按以下方式讀取到內存中的數據blob:
NSString *path = [[NSBundle mainBundle] pathForResource:@"iPadTest" ofType:@""];
NSFileHandle *file = [NSFileHandle fileHandleForReadingAtPath:path];
data = [file readDataToEndOfFile];
currentImage = [ReadDataFiles getOrganizedImageData:data];
最後一個函數給了我一個結構,其中的數據是有點更容易,但仍然存在爲三冗長數據斑點的圖像數據。它是這樣開始的:
ImageData *organizedImageData = malloc(sizeof(ImageData));
// IMAGE DIMENSIONS
UInt64 *rawData = (UInt64 *) data.bytes;
organizedImageData->imageDimensions.x = *rawData;
rawData++;
organizedImageData->imageDimensions.y = *rawData;
rawData++;
organizedImageData->imageDimensions.z = *rawData;
// IMAGE 1
rawData++;
organizedImageData->image1Data = (UInt8*)rawData;
// IMAGE 2
rawData++;
organizedImageData->image2Data = (UInt8*)rawData;
// etc...
的問題是,當數據到達OpenGL函數別的東西寫在相同的存儲。結果每次都不一樣,但數據永遠不會持續。
當我告訴調試器暫停,當這些地址被改變時,我最終在彙編代碼中,我不能做任何事情。
如何以及應該在哪裏分配內存空間,以便程序的其餘部分不會與其混淆?
調試器在調用堆棧上顯示什麼?這是否給你一個線索? – torak 2010-09-01 14:37:11
你能告訴我ImageData的結構是怎樣的嗎? – 2010-09-01 14:50:15