[c] Problem ze skopiowaniem zmiennej do tablicy w strukturze
Ostatnio zmodyfikowano 2013-12-01 02:40
marcopolo Temat założony przez niniejszego użytkownika |
[c] Problem ze skopiowaniem zmiennej do tablicy w strukturze » 2013-12-01 01:20:33 Czy ma ktoś pomysł dlaczego ten kod, który napisałem, nie kopiuje mi zawartości zmiennej ? struct rrr { char tekst[ 128 ]; } pkt;
char wsk = getenv( "PATH" ); char * wsk2 = & wsk;
strncpy( pkt.tekst, wsk2, sizeof( pkt.tekst ) );
|
|
killjoy |
» 2013-12-01 01:27:06 char to jeden znak, a funkcja zwraca wskaźnik na char (dokładniej wskaźnik na c-stringa), czyli innymi słowy typ char * |
|
marcopolo Temat założony przez niniejszego użytkownika |
» 2013-12-01 01:32:43 Gdy zmieniam char tekst[ 128 ]; na char * tekst[ 128 ]; to dostaję błąd: warning: passing argument 1 of 'strncpy' from incompatible pointer type |
|
killjoy |
» 2013-12-01 01:34:18 Chodzi mi o tą linijkę: char wsk = getenv( "PATH" ); |
|
marcopolo Temat założony przez niniejszego użytkownika |
» 2013-12-01 01:37:36 Ok, tamto zostawiłem jak było, a zmieniłem na to co mi podałeś i teraz mam 2 błędy: 28 warning: initialization makes pointer from integer without a cast 29 warning: initialization from incompatible pointer type 28 i 29 linia to: char * wsk = getenv( "USER" ); char * wsk2 = & wsk; Pomóż, bo kombinuję, wszędzie wstawiam te wskaźniki, ale jak znikają mi błędy w końcu no nadal mi z kolei nie kopiuje... |
|
killjoy |
» 2013-12-01 01:40:01 Po co to: char * wsk2 = & wsk; , czemu nie używasz bezpośrednio wskaźnika wsk |
|
marcopolo Temat założony przez niniejszego użytkownika |
» 2013-12-01 01:43:19 No ok, tamto mogę usunąć, ale nadal jak robię char * wsk = getenv( "USER" ); to dostaję 28: warning: initialization makes pointer from integer without a cast |
|
killjoy |
» 2013-12-01 01:47:44 To jest tylko warning, kod powinien działać. Zdaje mi się, że jak Zrobisz tak: char * wsk; wsk = getenv( "PATH" );
To powinno nie być warninga. |
|
« 1 » 2 3 |