Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C] nadpisanie wszystkich elementów tablicy ostatnim łańcuchem

Ostatnio zmodyfikowano 2015-01-09 13:12
Autor Wiadomość
qq91
Temat założony przez niniejszego użytkownika
[C] nadpisanie wszystkich elementów tablicy ostatnim łańcuchem
» 2015-01-09 11:39:39
witam, mam taki problem: otwieram plik skladajacy sie z 10 wersy. kazdy wers zapisuje do tablicy łancuchow, zapis odbywa sie prawidlowo co sprawdzam funkcja printf w petli a po wyjsciu z petli kazdy element tablicy sklada sie z ostatniego wersu z pliku.
czesc kodu:
C/C++
FILE * wp;
char bufor[ 50 ];
char * wersy[ 10 ];

while( fgets( bufor, 50, wp ) != NULL ) {
    sumy[ i ] = znajdz_cyfry( bufor ); // inna funkcja
    wersy[ i ] = bufor; // zapis
    printf( "Zapisany wers: %s.\n", wersy[ i ] ); // sprawdza czy zapis odbywa sie prawidlowo
    i++;
}
// po wyjsciu z petli tablica wersy zapełniona jest ostatnim wersem z pliku wp
for( m = 0; m < 10; m++ )
     puts( wersy[ m ] );

ostatnia petla wyswietla mi 10 razy ostatni wers z pliku wp

o jest złe, czemu tak sie dzieje ?
P-124483
Adik80
» 2015-01-09 13:12:20
wszystkie wskazniki w 'wersy' wskazuja na 'bufor', gdzie masz ostatnia wczytana wartosc. Albo zamien na wersy[10][50] i uzyj strcpy, albo alokuj pamiec i kopiuj: wersy = (char*)malloc(strlen(bufor)+1); strcpy(bufor, bufor);
P-124485
« 1 »
  Strona 1 z 1