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++ - Jak sprawdzić czy wskaźnik został przypisany

jowyma 26 Kwi 2015 19:10 654 2
  • #1 26 Kwi 2015 19:10
    jowyma
    Poziom 22  

    Proszę o pomoc z następującym problemem. Nie wiem jak w C++ należy poprawnie sprawdzać czy wskaźnik został przypisany do czegoś czy nie. W ANSI C wskaźniki miały po stworzeniu wartość NULL, w C++ wskazują na losowy fragment pamięci. W moim programie tworzę tablicę wskaźników na obiekty klasy i dopiero kiedy jest potrzeba to przypisuję im adres nowego obiektu na który mają wskazywać.
    Próbuję przypisać im wartości 0 albo NULL, ale to nie rozwiązuje problemu, wciąż wyrzuca mi błąd bo w kodzie sprawdzam czy wskaźnik jest NULL czy nie.
    Nie wiem jak w C++ mam to sprawdzać skoro za pomocą NULL się nie da.

    Zamieszczam pod spodem kod, w komentarzu jest napisane BŁĄD tam gdzie program się zatrzymuje.

    Definicja klasy (tutaj wszystko ok)

    Kod: cpp
    Zaloguj się, aby zobaczyć kod



    Teraz definicje funkcji, tutaj problem ze sprawdzaniem czy wskaźniki w tablicy wskazują już na coś czy nie:

    Kod: cpp
    Zaloguj się, aby zobaczyć kod




    I w końcu funkcja main gdzie tworzę tablicę pięciu wskaźników na obiekty klasy.

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

    0 2
  • Pomocny post
    #2 26 Kwi 2015 21:09
    krru
    Poziom 32  

    jowyma napisał:


    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    Skoro tablica[] == NULL to nie możesz odwoływać się dwie linijki niżej to tego wskaźnika.
    Jak rozumiem chcesz mieć oddzielne listy na każdy dzień tygodnia. Powinno to wyglądać jakoś tak:


    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    0
  • #3 27 Kwi 2015 03:38
    -psiak-
    Poziom 32  

    jowyma napisał:
    Proszę o pomoc z następującym problemem. Nie wiem jak w C++ należy poprawnie sprawdzać czy wskaźnik został przypisany do czegoś czy nie.
    w dowolny z następujących sposobów:
    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    jowyma napisał:
    W ANSI C wskaźniki miały po stworzeniu wartość NULL, w C++ wskazują na losowy fragment pamięci.
    Totalne bzdury, jak w C tak w C++ niezainicjowany wskaźnik ma wartość losową (no chyba że zadeklarowany jako globalny bądź statyczny - tak samo w C jak w C++).

    Co do reszty @krru już napisał.

    0
  Szukaj w 5mln produktów