logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Attiny25,C] - Pusty wskaźnik do funkcji w strukturze.

^Rachel 16 Mar 2014 16:07 918 6
  • #1 13410225
    ^Rachel
    Poziom 21  
    Witam !

    Piszę program do sterownika oświetlenia, napotkałem się na następujący problem , oto kod :

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Kod ten przerzuciłem na kompilator GCC dla Windows aby sprawdzić w debuggerze co jest nie tak , i okazuje się , że wskaźniki na funkcje w strukturze wskazują na adres NULL tj 0x0 . Domyślam się , że jest to winą jakiegoś prostego błędu.

    Proszę o pomoc.
  • Pomocny post
    #2 13410268
    tadzik85
    Poziom 38  
    A niby skąd mają wziąć swą wartość?
  • #3 13410295
    ^Rachel
    Poziom 21  
    No z adresów tych funkcji ,które są dalej zdefiniowane. Próbowałem też wcześniej(przed strukturą) zadeklarować prototypy funkcji , ale to nic nie dało.
  • Pomocny post
    #4 13410312
    tadzik85
    Poziom 38  
    No ciekawe. A gdzie przypisanie tym wskaźnikom wartości?
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Bo ja nie widzę.....
    To, że wskaźnik nazwałeś tak samo jak funkcję niczego nie zmienia.
  • #5 13410349
    ^Rachel
    Poziom 21  
    Masz rację . Myślałem trochę inaczej , że już sama nazwa wskaźnika jak funkcji na którą ma wskazywać przypisuje mu jej adres.
  • Pomocny post
    #6 13410357
    tadzik85
    Poziom 38  
    ^Rachel napisał:
    Masz rację . Myślałem trochę inaczej , że już sama nazwa wskaźnika jak funkcji na którą ma wskazywać przypisuje mu jej adres.


    Jest odwrotnie to nazwa może być wskaźnikiem. Tak jak w przypadku tablic. Tzn nie jest konieczny operator &.
  • #7 13410373
    ^Rachel
    Poziom 21  
    Wrzucę tutaj rozwiązanie problemu , może ktoś tu jeszcze trafi :D

    Wystarczyło przypisać adresy funkcji do wskaźników :

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Dzięki ! :)

    Dodano po 1 [minuty]:

    tadzik85 napisał:
    ^Rachel napisał:
    Masz rację . Myślałem trochę inaczej , że już sama nazwa wskaźnika jak funkcji na którą ma wskazywać przypisuje mu jej adres.


    Jest odwrotnie to nazwa może być wskaźnikiem. Tak jak w przypadku tablic. Tzn nie jest konieczny operator &.


    Masz rację , w ten sposób też działa :

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
REKLAMA