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.

c++ - Sturktury i wskaźniki

Softmar 28 Kwi 2014 23:07 621 9
  • #1 28 Kwi 2014 23:07
    Softmar
    Poziom 9  

    Witam, chciałbym się zapytać co oznacza taki zapis

    Kod: cpp-qt
    Zaloguj się, aby zobaczyć kod

    szczególnie chodzi mi o
    Kod: cpp-qt
    Zaloguj się, aby zobaczyć kod

    0 9
  • #2 28 Kwi 2014 23:30
    mickpr
    Poziom 39  

    Przypisanie do kolejnych pól tabeli liczby 0 rzutowanej na wskaźnik do struktury K.

    0
  • #3 28 Kwi 2014 23:45
    Softmar
    Poziom 9  

    Czyli w każdym polu tabeli jest struktura wypełniona zerami ?

    0
  • Pomocny post
    #4 28 Kwi 2014 23:50
    mickpr
    Poziom 39  

    Softmar napisał:
    w każdym polu tabeli jest struktura
    W każdym polu struktury jest WSKAŹNIK. Wskaźnik wskazuje 0, więc jest raczej "nieprzydatny" - można powiedzieć "nic sensownego w nim nie ma".

    0
  • #5 29 Kwi 2014 00:02
    Softmar
    Poziom 9  

    A taki zapis ?

    Kod: cpp-qt
    Zaloguj się, aby zobaczyć kod

    0
  • Pomocny post
    #6 29 Kwi 2014 00:08
    mickpr
    Poziom 39  

    Daje wskaźnik do właśnie zaallokowanej struktury. Uwaga: taka struktura nie jest zainicjowana!

    0
  • #7 29 Kwi 2014 00:45
    Softmar
    Poziom 9  

    Co to znaczy że nie jest zainicjonowana ?

    0
  • #8 29 Kwi 2014 07:01
    krru
    Poziom 32  

    Softmar napisał:

    szczególnie chodzi mi o
    Kod: cpp-qt
    Zaloguj się, aby zobaczyć kod


    Normalni ludzie w takiej sytuacji piszą NULL.

    0
  • #9 29 Kwi 2014 07:34
    gaskoin
    Poziom 38  

    Softmar napisał:
    Co to znaczy że nie jest zainicjonowana ?


    To, że dostajesz przydział pamięci na daną strukturę ale ta pamięć jest wypełniona jakimiś śmieciami. Jak chcesz dostać zainicjalizowaną to musisz użyć funkcji calloc, choć w przypadku struktur nie ma to żadnego wybitnego zastosowania przeważnie :)

    PS Twój problem nie dotyczy C++

    0
  • #10 29 Kwi 2014 07:36
    mickpr
    Poziom 39  

    krru napisał:
    Normalni ludzie w takiej sytuacji piszą NULL.
    Tak, jeśli NULL jest zdefiniowane - a często nie jest.
    W tym przypadku (kontekście) użycie 0 będzie nieco poprawniejsze - gdyż mamy pusty wskaźnik do struktury, zamiast pustego wskaźnika "do wszystkiego" (void *).
    Z tego co się orientuję - właśnie z tego powodu NULL w C/C++ jest niezdefiniowane. Niektóre dialekty tych języków jednak definiują NULL jako wskaźnik (void *)0 albo wprost - jako wartość 0/0L (wtedy odpowiednio wskaźnik trzeba sobie rzutować sobie samemu na to 0/0L właśnie).

    0