Я прочитал каждый вопрос о месте записи о нарушении прав доступа, который мог найти, и, возможно, я что-то упустил, но, похоже, у меня возникла другая ошибка.Я инициализировал все мои указатели (насколько я могу судить).
void putpixel( SDL_Surface* surface, int x, int y, Uint32 pixel )
{
int k = GetWidth(surface);
//Convert the pixels to 32 bit
Uint32 *pixels = (Uint32 *)surface->pixels;
//Set the pixel
pixels[ ( y * surface->w ) + x ] = pixel; //This is the line the debugger points to.
}
Программа отображает набор Мандельброта.Это функция, которую я использовал для доступа к данным пикселей.Когда я впервые написал программу, она была в int main (), и с этой самой функцией она работала нормально.Я намеревался написать это как упражнение, используя SDL и указатели, поэтому я разделил его и сделал Мандельброта своим собственным классом, чтобы немного узнать об ООП.Только когда я разделил это, у меня начались эти проблемы.Есть ли что-то очевидное, что мне не хватает?Я был бы рад опубликовать остальную часть кода, я просто не хочу заваливать вас, ребята, кодом, который не имеет значения.Когда я прослеживаю проблему назад, она указывает на функцию putpixel в реальном коде для рисования набора, что имеет смысл.Может быть, проблема возникла там?
РЕДАКТИРОВАТЬ: поцарапать это.Я сделал некоторую обработку ошибок, и я определенно правильно блокирую поверхность.