我已经通读了每个访问冲突写在这里我可以找到的位置问题,也许我错过了一些东西,但我似乎遇到了不同的错误。我初始化了所有的指针(据我所知)。SDL访问冲突写入位置0x02a251c8
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.
}
该程序显示Mandelbrot集。这是我用来访问像素数据的功能。当我第一次编写程序时,它全部在int main()中,并且使用这个函数很好地工作。我打算用SDL和指针编写这个练习,所以我将它分解并将Mandelbrot作为自己的类来学习一些关于OOP的知识。只有一次我把它分开了,我开始有这些问题。有什么明显的我失踪了吗?我很乐意发布其余的代码,我只是不想用无关紧要的代码淹没你们。当我追溯问题时,它指向实际代码中的putpixel函数以绘制集合,这很有道理。问题是否源于此?
编辑:划痕。我做了一些错误处理,并且我确实锁定了曲面。
看我的编辑。我想我正确锁定了表面,但我觉得我犯了一个愚蠢的错误。 –