Witam
Mam bardzo dziwny dla mnie problem. Piszę program słownika T9 (ten znany z komórek). Napisałem go pod Linuksem z użyciem GTK i wszystko było ok. Kiedy chciałem go skompilować na Windowsie zaczął się niestabilnie zachowywać. Słowa są zapisywane w pliku tekstowym, wczytywane po kolei i dodawane do struktury danych za pomocą funkcji dodaj_slowo_do_slownika(). Niestety na Windowsie albo fopen zwraca NULL (plik istnieje, sprawdzałem ścieżkę bezwzględną i względną) kiedy za pomocą Visual Studio uruchomię program, albo okienko się włącza i szybko wyłącza (dla plików większych niż 1k, dla mniejszych działa), gdy uruchomię program wchodząc do odpowiedniego folderu. Tak wygląda problematyczna funkcja:
void wczytaj_z_pliku()
{
FILE *plik;
char znak;
char wyraz[50]; /* zakładam maksymalną długość słowa na 50*/
char *gotowy_wyraz; /*dla niego będę alokował tyle ile potrzeba*/
int i=0;
plik = fopen("slowa.txt", "r");
if(plik!=NULL)
{
while(!feof(plik))
{
fscanf(plik, "%c", &znak);
if(feof(plik)) break;
if(!czy_litera(znak))
{
gotowy_wyraz =(char *) malloc((i+1)*sizeof(char));
wyraz[i]='\0';
strcpy(gotowy_wyraz, wyraz);
dodaj_slowo_do_slownika(root, gotowy_wyraz);
i=0;
continue;
}
else
{
wyraz[i++]=znak;
}
}
fclose(plik);
}
else
{
extern GtkWidget * pasek; /*wypisuje w pasku statusu*/
gtk_statusbar_push( GTK_STATUSBAR(pasek), 0, "Nie udało się załadować pliku słownika");
}
}
Bardzo proszę o pomoc, jestem załamany tym wszystkim...