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

[c] Problem ze skopiowaniem zmiennej do tablicy w strukturze

Ostatnio zmodyfikowano 2013-12-01 02:40
Autor Wiadomość
marcopolo
Temat założony przez niniejszego użytkownika
» 2013-12-01 01:52:44
warning jest nadal, a jak chcę potem zrobić printf tego czyli:

printf( "%s \n", wsk );

to wyświetla się tylko:
Segmentation fault: 11
P-97983
killjoy
» 2013-12-01 02:00:31
Pokaż aktualny kod.
P-97985
marcopolo
Temat założony przez niniejszego użytkownika
» 2013-12-01 02:06:12
C/C++
struct rrr
{
    char text[ 128 ];
} pkt;

int main() {
   
   
    char * wsk;
    wsk = getenv( "USER" );
   
   
    printf( "%s\n", wsk );
   
    //strncpy(p.text, wsk, sizeof(p.text));
   
}
P-97986
killjoy
» 2013-12-01 02:11:24
Zmieniłeś zmienną na USER, która nie istnieje, więc otrzymujesz pusty wskaźnik do którego nie możesz się odwołać co powoduje segmentation fault. Rozwiązanie: zmień nazwę zmiennej na istniejącą. Nie zaszkodziłoby również sprawdzanie czy wskaźnik nie jest czasem pusty:
C/C++
char * wsk;
wsk = getenv( "USER" );

if( wsk )
     printf( "%s\n", wsk );
else printf( "Zmienna nie istnieje!" );

P-97987
marcopolo
Temat założony przez niniejszego użytkownika
» 2013-12-01 02:16:28
To dziwne, bo ta zmienna wczoraj zwracała mi aktualnie zwracanego użytkownika (jego login), a potrzebuję tego do aplikacji.
P-97988
killjoy
» 2013-12-01 02:18:24
Jaki masz OS, jeżeli linuxa to faktycznie istnieje ( i nie wiem czemu się program wywala), w windowsie nie stwierdziłem występowania takowej :P.
P-97989
marcopolo
Temat założony przez niniejszego użytkownika
» 2013-12-01 02:19:18
FreeBSD. Też nie wiem czemu dziś tak jest ;/
P-97990
killjoy
» 2013-12-01 02:21:02
Sprawdź inne zmienne, dowiesz się w ten sposób czy to wina programu czy może OS.
P-97991
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona