• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wskaźnik do tablicy struktur jako argument funkcji

Aruba Cloud - Virtual Private Server VPS
0 głosów
804 wizyt
pytanie zadane 4 listopada 2018 w C i C++ przez 5-latek Nowicjusz (240 p.)

Nie potrafię wczytać danych do tablicy struktur, wiem jak zrobić to przy uzyciu referencji, ale nie wiem jak rozwiązać to wskaźnikowo, podaje prosty kod: 

#include <iostream>

using namespace std;

struct dane
{
    int a,b,c;
    string t;
};

void wczytaj(dane** plac,int n)
{
    for(int i=0;i<n;i++)
    {
        cin >> plac[i]->a; cin >> plac[i]->b; cin >> plac[i]->c;
        cin >> plac[i]->t;
    }
}

void wyswietl(dane** plac,int n)
{
    for(int i=0;i<n;i++)
    {
        cout << "Dane: " << endl;
        cout << plac[i]->a << endl;
        cout << plac[i]->b << endl;
        cout << plac[i]->c << endl;
        cout << plac[i]->t << endl;
        cout << endl;

    }
}

int main()
{
    int n;
    cin >> n;
    dane *plac=new dane[n];
    wczytaj(&plac,n);
    wyswietl(&plac,n);
    return 0;
}

 

komentarz 4 listopada 2018 przez 5-latek Nowicjusz (240 p.)
dodam, ze program się kompiluje, ale przy wpisywaniu danych program się "crashuje"..
komentarz 4 listopada 2018 przez 5-latek Nowicjusz (240 p.)
Chodzi mi jak zrobić to przy uzyciu wskaźnika ( -> ) a nie ( . )

1 odpowiedź

0 głosów
odpowiedź 4 listopada 2018 przez RafalS VIP (122,820 p.)

Po pierwsze niepotrzebnie przekazujesz to przez podwójny wskaźnik, pojedynczy jest w sam raz jesli nie chcesz modyfikowac samego wskaznika, czego nie robisz.

A program sie wywala bo pomieszaleś koleność:

dane** plac_ptr = &plac;
plac_ptr[3]->a;

Wydaje mi sie, że chcesz najpierw dobrac sie do tablicy a dopiero wtedy do jej elementow a nie na odwrot. W tym momencie traktowales plac_ptr jako tablice wskaznikow na dane.

(*plac_ptr)[3].a;

Ale wygląda to bardzo dziwnie bo niepotrzebnie robisz te dwa wskaźniki.

Podobne pytania

–1 głos
3 odpowiedzi 1,468 wizyt
pytanie zadane 9 września 2018 w C i C++ przez niezalogowany
0 głosów
1 odpowiedź 1,054 wizyt
pytanie zadane 8 kwietnia 2018 w C i C++ przez giedymin33 Początkujący (290 p.)
0 głosów
1 odpowiedź 677 wizyt
pytanie zadane 6 kwietnia 2018 w JavaScript przez JSJerry Początkujący (260 p.)

93,327 zapytań

142,325 odpowiedzi

322,396 komentarzy

62,657 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...