Witam
Mam problem z funkcją fgets().
Uint8 loadBMPs(void)
{
Uint8 i;
FILE *graphicsList;
fpos_t graphicsListPos;
char *graphicName;
if((graphicsList = fopen("graphics/graphics.lst", "rb")) == NULL)
{
return 1;
}
for(i = 0; i < 1; ++i)
{
graphicsListPos = i * 128;
fsetpos(graphicsList, &graphicsListPos);
graphicName = "";
if((graphicName = fgets(graphicName, 128, graphicsList)) == NULL)
{
return 1;
}
if((graphics[i] = SDL_LoadBMP(graphicName)) == NULL)
{
return 1;
}
SDL_SetColorKey(graphics[i], SDL_SRCCOLORKEY, SDL_MapRGB(graphics[i]->format, 255, 0, 255));
}
fclose(graphicsList);
return 0;
}
Wszystko wygląda, że jest OK, brak błędów kompilacji, ustawiłem, że jeżeli w tej funkcji jest return 1, to main zwraca 2, a po odpaleniu programu nic się nie pojawia i main zwraca liczbę z kosmosu. Jak komentuję if((graphicName = fgets(graphicName, 128, graphicsList)) == NULL) i return też, to wtedy normalnie mian zwraca 2. Co może byc nie tak? Wrzucam okienko z debuggera.