2016-06-20 14 views
-1

Ich verwende SDL2 für ein Spiel-Projekt, und wenn ich einen Wert in eine Uint32 Variablen zuzuweisen bin versucht, wirft Compiler diesen Fehler:Wie weisen Sie einer Uint32-Variablen einen Wert zu?

int      sdl_create_win(t_render *ress, t_map *map)        
{ 
    SDL_CreateWindowAndRenderer(WIN_X, WIN_Y, 0, &ress->screen, &ress->rend); 
    if (!ress->screen || !ress->rend) 
    { 
     fprintf(stderr, 
       "Problem encountered while creating windows -> SDL Error : %s\n", 
       SDL_GetError()); 
     SDL_Quit(); 
     return (-1); 
    } 
    ress->texture = SDL_CreateTexture(ress->rend, 
            SDL_PIXELFORMAT_ARGB8888, 
            SDL_TEXTUREACCESS_STATIC, 
            map->x, map->y); 
    ress->pixels = [map->x * map->y]; 
    memset(ress->pixels, 255, map->x * map->y * sizeof(Uint32)); 
    return (0); 
} 

Compiler-Fehler ist ->

30:18: error: expected expression before ‘[’ token 
ress->pixels = [map->x * map->y]; 

Dank viel Hilfe !!

+0

Was ist 'Uint32'? Warum nicht die Standardtypen mit fester Breite verwenden? Der Fehler bezieht sich nicht auf den Typ, sondern auf Ihre - abenteuerliche - Grammatik. Es ist einfach nicht C. – Olaf

+4

Was sind die eckigen Klammern '' und '' 'um den Ausdruck' map-> x * map-> y' zu tun? Vielleicht musst du [ein gutes Anfängerbuch finden] (http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list)? –

Antwort

2

DS sieht gut aus, Uint32 gültige Typ in SDL ist.

Wenn diese Syntax C sein soll, ist der Fehler ress->pixels = [map->x * map->y];.

Eckige Klammern sind nicht Teil der Syntax, wenn auf diese Weise verwendet wird.

Vielleicht sollten Sie angeben, was Sie mit dieser Zeile erreichen möchten?

+0

Lieber Downvoter - Bitte kommentieren Sie, was das Problem ist, damit ich es beheben kann. Vielen Dank –

Verwandte Themen