Nowe posty

Autor Wątek: Wskaźnik a Tablica  (Przeczytany 3987 razy)

Einst3in

  • Gość
Wskaźnik a Tablica
« dnia: 2010-12-04, 10:19:29 »
#include
main()
{
char tablica[25] = "teskst1" ;
char *wskaznik = "tekst2" ;

printf("%s %s\\n", tablica, wskaznik);
}

Czym w tym wypadku różni się użycie tablicy od użycia wskaźnika?

darkdancer

  • Gość
Wskaźnik a Tablica
« Odpowiedź #1 dnia: 2010-12-04, 13:39:42 »
Kod: c [Zaznacz]
#include 
int main(int argc, char *argv[])
{
    char tablica[25] = "tekst1";
    char *wskaznik = "tekst2";

    // tak można
    tablica[5] = '3';
    // segfault gwarantowany
    wskaznik[5] = '4';
    printf("%s %s\\n", tablica, wskaznik);

    return 0;
}

Offline vanhelzing

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 314
    • Zobacz profil
Wskaźnik a Tablica
« Odpowiedź #2 dnia: 2010-12-05, 09:47:33 »
"tablica" jest wskaźnikiem na 25. znakowy bufor dynamiczny, "wskaznik" jest wskaźnikiem na tekst statyczny. Dlatego "tablica" może być zmieniana, a "wskaznik" nie powinien.

Einst3in

  • Gość
Wskaźnik a Tablica
« Odpowiedź #3 dnia: 2010-12-06, 10:24:14 »
Dzięki za pomoc:)