Я загружаю изображение с помощью библиотеки OpenEXR.
Это работает нормально, за исключением того, что изображение загружено повернутым на 180 градусов.Я использую цикл, показанный ниже, чтобы инвертировать массив, но иногда программа закроется, и xcode выдаст мне ошибку EXEC_BAD_ACCESS (которая, как я полагаю, аналогична нарушению прав доступа в msvc).Это не происходит каждый раз, только один раз каждые 5-10 раз.
В идеале я хотел бы обратить вспять массив на месте, хотя это приводило к ошибкам каждый раз, и использование memcpy завершилось бы неудачей, но без возникновения ошибки, простопустое изображение.Я хотел бы знать, что в первую очередь вызывает эту проблему.
Вот код, который я использую: (Rgba - это структура из 4 "Half" sr, g, b и a, определенных в OpenEXR)
Rgba* readRgba(const char filename[], int& width, int& height){
Rgba* pixelBuffer = new Rgba[width * height];
Rgba* temp = new Rgba[width * height];
// ....EXR Loading code....
// TODO: *Sometimes* the following code results in a bad memory access error. No idea why.
// Flip the image to conform with OpenGL coordinates.
for (int i = 0; i < height; i++){
for(int j = 0; j < width; j++){
temp[(i*width)+j] = pixelBuffer[(width*height)-(i*width)+j];
}
}
delete pixelBuffer;
return temp;
}
Заранее спасибо!