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
[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 ?
C/C++
struct rrr
{
    char tekst[ 128 ];
} pkt;


char wsk = getenv( "PATH" );
char * wsk2 = & wsk;

strncpy( pkt.tekst, wsk2, sizeof( pkt.tekst ) );
P-97972
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 *
P-97973
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
P-97975
killjoy
» 2013-12-01 01:34:18
Chodzi mi o tą linijkę:
char wsk = getenv( "PATH" );
P-97976
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:
C/C++
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...
P-97977
killjoy
» 2013-12-01 01:40:01
Po co to:
char * wsk2 = & wsk;
, czemu nie używasz bezpośrednio wskaźnika
wsk
P-97978
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
P-97980
killjoy
» 2013-12-01 01:47:44
To jest tylko warning, kod powinien działać. Zdaje mi się, że jak Zrobisz tak:
C/C++
char * wsk;
wsk = getenv( "PATH" );
To powinno nie być warninga.
P-97982
« 1 » 2 3
  Strona 1 z 3 Następna strona