【发布时间】:2023-12-28 13:38:02
【问题描述】:
我已经阅读了我能找到的所有访问冲突写入位置问题,也许我遗漏了一些东西,但我似乎遇到了不同的错误。我已经初始化了所有指针(据我所知)。
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 函数,这是有道理的。问题可能源于那里吗?
编辑:从头开始。我做了一些错误处理,我肯定正确地锁定了表面。
【问题讨论】:
标签: location sdl access-violation