Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[C] Przekazanie wskaźnika do tablicy dwuwymiarowej

gregory89 21 Mar 2012 23:42 1872 6
  • #1
    gregory89
    Level 9  
    Cześć.
    Jak w temacie mam problem z przekazaniem wskaźnika do tablicy dwuwymiarowej.
    Najchętniej zrobiłbym tablice dynamiczną calloc'kiem (od razu by mi ją wyzerował), ale niestety gcc (code::blocks + mingw) ciągle wywala mi błąd związany z tą nieszczęsna tablicą.
    Pomożecie mi?
    Code: c
    Log in, to see the code


    Dodano po 1 [godziny] 49 [minuty]:

    Ok. Sam się domyśliłem co nie tak z kodem. Wygląda na to, że wskaźniki i tablice są ok a walnąłem się używając polskiego "ł" w nazwie funkcji.

    A tak trochę poza tematem. Wie ktoś czy gcc/code::blocks ma narzędzia pozwalające sprawdzić przekroczenie zakresu tablicy?
  • #2
    rexina
    Level 17  
    Ja używam programów gdb (gnu debugger) oraz valgrind na linuxie, ale czy są one dostępne na windowsa to nie wiem. Stawiam że za pomocą mingw można je bez większych problemów skompilować.
    Ale po co się męczyć, w C++ lepiej pisze sie na linuxie. Sam się o tym przekonałem. :)
  • #3
    gregory89
    Level 9  
    Czekam tylko na wersję 12.04 i instaluję Ubu, bo najnowsza 11.10 mnie nie zachwyciła, a ze starszymi zbyt wiele kłopotów z uaktualnieniem pakietów do najnowszych wersji. Mógłbyś opisać te narzędzia trochę bliżej? Rozumiem że wrzucam gotowy, skompilowany program, a te narzędzia wskazują wiersz, w którym jest błąd?
  • #4
    rexina
    Level 17  
    Swoją drogą nie polecam Ubuntu. A szczególnie 12.04 (jest baaardzo niestabilny jak na razie). Dla nie doświadczonych użytkowników polecam Debiana, a dla tych którzy mieli już linuxa to Gentoo.

    Narzędzia te działają tak:
    - kompilujesz program z flagą debuggera (g++ -g nazwa.cpp -o nazwa), jak chcesz to też inne parametry podajesz,
    - odpalasz jeden z tych programów, jako argument podając skompilowany plik,
    - program uruchamia Twoją binarkę, podajesz dane wejściowe,
    - w momencie gdy program się posypie, to valgring/gdb wskażą lnijkę i nazwę funkcji gdzie się program "popsuł" :D

    Jak dla mnie są to bardzo przydatne programy, a są one proste w obsłudze :)
  • #5
    McMonster
    Level 32  
    MinGW zawiera w sobie gdb, wystarczy dowolne środowisko ze wsparciem debugowania przez gdb i spokojnie można odnaleźć problem choćby przez single-step. C::B dawno nie używałem, ale też musi wspierać debugowanie, inaczej bym to zapamiętał.

    Użyj w C::B targetu Debug, zró breakpointa w kodzie w miejscu, w którym (lub przed którym) podejrzewasz problem i uruchom w trybie debugowania, a potem przechodź instrukcja po instrukcji przeglądając wartości zmiennych, gdzieś tam powinno być też okno do ich podglądania. Bez tej podstawowej umiejętności ciężko napisać jakikolwiek program powyżej kilku linii kodu.
  • #7
    gregory89
    Level 9  
    Dzięki, już chyba dam sobie radę.