C Programmierprojekt - Problem mit seltsamen Fehler



  • Hi.

    Ich und 2 Kommilitonen schreiben grade eine Towerdefence. SDL macht bei uns ein problem. und zwar stürzt SDL ab wenn wir zu viele tics haben.
    Mit jedem tic werden neue informationen auf ein Screen gebracht.

    alles was wir an SDL code haben sieht so aus:
    Folgendes in der Main:

    if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER) < 0){
                fprintf(stderr, "SDL init error: %s\n", SDL_GetError());
                exit(1);
        }
        atexit(SDL_Quit);
    
        SDL_Surface* screen;
        SDL_Surface *image;
        screen = SDL_SetVideoMode(800, 600, 16, SDL_SWSURFACE);
        if(screen == NULL){
                fprintf(stderr, "Unable to set 800x600 video: %s\n", SDL_GetError());
                exit(1);
        }
    

    und tiefer im code, im rundenkern: als darstellungsfunktion:

    void show(int** creep, int** tower, int** shot, int* data, void* screen){
        int i, j, **feld;
    
        boxColor(screen, 0, 0, 500, 500, 0x00000000);
    
        for(i = 0; i < data[0]; i++){
        	if(creep[i][5] == 0)
        	boxColor(screen, creep[i][0]-1, creep[i][1]-1, creep[i][0]+1, creep[i][1]+1, 0xffffffff);
        	//feld[creep[i][1]][creep[i][0]] = 232;
        }
    
        SDL_UpdateRect (screen, 0, 0, 0, 0);
    }
    

    wenn ich das SDL zeugs rauskommentiere gehts...
    wo liegt mein fehler? 😞

    EDIT:

    habs...
    das problem lag nicht im SDL. auch wenn das noch sehr schlampig ist.
    das problem war ein feld das jedes mal neu initialisiert wurde und mit 0 überschrieben wurde. dieses array war 800x600. das hat a) gebremst! und b) halt irgendwie nach dem 1087ten mal. einen crash verursacht.


  • Mod

    naechstes mal die zeile in der es im debugger haengen bleibt zeigen und welche meldung du bekommst 😉


Anmelden zum Antworten