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 przekazać dwu wymiarową tablice wskaźników do funkcji

tiger1990 26 Lut 2013 21:04 1188 4
  • #1 26 Lut 2013 21:04
    tiger1990
    Poziom 12  

    Witam,

    Mam taki problem, otóż:

    Mam taką klasę:

    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    W mainie chciałbym mieć: (poki co tablica jest globalna)
    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    i chciałbym przekazać tą tablice do funkcji która wygląda tak:

    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    Kiedy tablica jest globalna wszystko działa poprawnie, jednak, gdy staram się przekazać ją do funkcji zaczyna się magia i nie potrafię sobie z tym poradzić.

    z góry dzięki za wskazówki.
    Irek

    0 4
  • #2 26 Lut 2013 21:23
    Krzysztof Gustaw
    Poziom 23  

    Witam!

    Musisz tę tablicę przekazać do funkcji jako: "typ wskaźnik do n-elementowych tablic typu 'typ' "
    Przykład:
    zadeklarowałeś tablicę dwuwymiarową typu:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Wtedy do funkcji przekazujesz ją jako:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    gdzie: I stanowi indeks po prawej stronie tablicy
    a w funkcji odwołujesz się poprzez:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    bądź też:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Pozdrawiam
    KG

    0
  • #3 27 Lut 2013 00:00
    tiger1990
    Poziom 12  

    Nie zabardzo rozumiem... mógłbyś pokazać na moim przykładzie?
    U siebie mam:

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    nie
    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    czym jest t_f?

    Irek

    0
  • #4 28 Lut 2013 20:10
    Krzysztof Gustaw
    Poziom 23  

    Witam!

    t_f jest wskaźnikiem do I-elementowych tablic typu (typ)

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Pamiętaj, że wskaźniki i tablice są ściśle ze sobą powiązane, do tego stopnia, że odwołania:

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

    są tożsame i formalnie poprawne.
    Chociaż w Twoim przypadku, skoro tablica ma już znane i ustalone na etapie kompilacji wymiary, najrozsądniej chyba będzie można zrobić tak:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    a z wskaźników do tablic korzystać, gdy w tych tablicach wymiary zmieniane są dynamicznie.

    0
  • #5 03 Mar 2013 13:32
    stanleysts
    Poziom 27  

    Ja bym to napisał tak:

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    0