這是怎麼回事?我可以在C中的結構中有一個指向SDL_Surfaces的指針數組嗎?C指針陣列的結構
typedef struct {
int next_wheel;
int pos_X;
int pos_Y;
int front_wheel_pos_X;
int front_wheel_pos_Y;
int velocity;
int rear_wheel_pos_X;
int rear_wheel_pos_Y;
SDL_Surface* body;
SDL_Surface* rear_wheel[9];
SDL_Surface* front_wheel[9];
} mars_rover;
...
mars_rover* init_rover() {
mars_rover* rover = (mars_rover*)malloc(sizeof(mars_rover) + sizeof(SDL_Surface) * 19);
rover->body = load_image("Graphics//rover.png", ds_info);
rover->front_wheel[0] = load_image("Graphics//wheel//wheel0.png", ds_info);
...
return rover;
}
int main() {
mars_rover* rover = init_rover();
...
}
編輯:加入我的負荷圖像的功能。
SDL_Surface *load_image(const char* filename , SDL_VideoInfo* ds_info) {
SDL_Surface* image = 0;
SDL_Surface* converted_surface = 0;
image = IMG_Load(filename);
if(image) {
converted_surface = SDL_DisplayFormatAlpha(image);
SDL_FreeSurface(image);
}
return converted_surface;
}
沒有什麼不好,只要你正在初始化指針 – Vlad
你發佈的內容沒有錯。有什麼問題? –
它會導致奇怪的行爲。 SDL_Surface在錯誤的位置傳播,或者根本不傳播。 – MVTC