C++11 获取sdl2中PNG imgae的RGBA值

C++11 获取sdl2中PNG imgae的RGBA值,c++11,sdl-2,C++11,Sdl 2,我需要图像的RGBA值来生成地形的高度,我正在使用sdl加载图像。我四处查看,发现sdl\u GetRGBA应该返回这些值,但每次运行此代码时,我的程序都会崩溃 SDL_Surface *image = IMG_Load(HightMapAddress); SDL_LockSurface(image); Uint32 *pixels = (Uint32 *)image->pixels; Uint8* RED; Uint8* GREEN; Uint8* BLUE; Uint8* ALPHA;

我需要图像的RGBA值来生成地形的高度,我正在使用sdl加载图像。我四处查看,发现
sdl\u GetRGBA
应该返回这些值,但每次运行此代码时,我的程序都会崩溃

SDL_Surface *image = IMG_Load(HightMapAddress);
SDL_LockSurface(image);
Uint32 *pixels = (Uint32 *)image->pixels;
Uint8* RED;
Uint8* GREEN;
Uint8* BLUE;
Uint8* ALPHA;
SDL_GetRGBA(pixels[0], image->format, RED, GREEN, BLUE, ALPHA);

SDL_GetRGBA
获取指向内存的指针,它应该在内存中写入生成的颜色。您传递了未初始化的指针,因此该函数将尝试写入未知位置。幸运的是,它将崩溃,否则您将在内存中踩下一些随机位置

正确的代码应该是

Uint8 RED;
Uint8 GREEN;
Uint8 BLUE;
Uint8 ALPHA;
SDL_GetRGBA(pixels[0], image->format, &RED, &GREEN, &BLUE, &ALPHA);

错误消息是什么?