Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

wczytywanie tekstu- wskaźniki

jolkajolka 02 Cze 2012 09:59 824 1
  • #1 02 Cze 2012 09:59
    jolkajolka
    Poziom 12  

    Pisałam już programy z wskaźnikami, ale nadal nie mam pojęcia jak wczytywać tekst za ich pomocą... Szukałam już sporo w necie i kombinowałam wstawiając różne rzeczy, ale za każdym razem nie wychodzi... pewno robię jakiś błąd wynikający z braku wystarczającej wiedzy o wskaźnikach...

    Po pierwsze jak scanf ma wczytywać tyle ile wpisze, np. 3 znaki. Napisać "%3c"? A potem jak wyświetlam to wyświetla się tylko pierwszy element więc powinnam jakoś wyświetlać m[0] m[1] m[2] itp.?Próbuje to wszystko połączyć, ale nie działa w żaden sposób.

    ... jeszcze jedno pytanie, dlaczego gdy wstawiam free(m); przed return 0 wszystko się psuje?

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 1
  • #2 02 Cze 2012 11:19
    beluosus
    Poziom 25  

    jolkajolka napisał:
    pewno robię jakiś błąd wynikający z braku wystarczającej wiedzy o wskaźnikach...

    W takim razie należy doczytać o wskaźnikach, zobaczyć przykładowy kod.
    http://pl.wikibooks.org/wiki/C/Wskaźnikia

    Kompilator powinien wywalić warningi do kodu, który dałeś.
    Nazwa tablicy jest również wskaźnikiem na nią.
    Ciąg znaków (string) wczytuje się za pomocą pola %s (lub %Ns, gdzie N to liczba znaków do wczytania). Należy pamiętać, że cstring jest zakończony null-terminatorem. Stąd należy pamiętać, że do tablicy 3-elementowej można wczytać 2 znaki, bo trzeci to '\0'.
    W momencie wykonania return funkcja kończy się - w przypadku funkcji main() jest to równoważne z zakończeniem programu więc kod za returnem nigdy się nie wykona.
    Dlaczego się dzieje tak jak mówisz? Bo coś dziwnego robisz tym scanfem, ale nie będę się wgłębiał co tam psujesz.

    Poprawiony kod:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    0