struktury
Ostatnio zmodyfikowano 2013-02-28 01:26
kloperman Temat założony przez niniejszego użytkownika |
struktury » 2013-02-27 22:15:27 Mam taki program : #include <iostream> #include <string> using namespace std;
struct dane { string imie; int punkty; };
int main() { int L; cin >> L; dane * ludzie = new dane[ L ]; for( int l = 0; l < L; l++ ) { cin >>( * ludzie[ l ] ).imie; cin >> ludzie[ l ]->punkty; } return 0; } Kompletnie nie wiem co jest w nim nie tak . W obu sposobach wprowadzenia danych jest jakis blad . Pierwszy sposob: error: no match for 'operator*' in '**(ludzie + ((sizetype)(((unsigned int)l) * 8u)))' Drugi sposob: error: base operand of '->' has non-pointer type 'dane' |
|
killjoy |
» 2013-02-27 22:28:19 Kiedy przydzielasz pamięć wskaźnikowi i odwołujesz się przez operator [] do komórki tablicy, to kompilator traktuje to jako odwołanie się przez normalny obiekt (chyba) a nie przez wskaźnik , jak chcesz się koniecznie odwołać przez -> to możesz zrobic tak, cin >>( ludzie + l )->punkty;
|
|
Monika90 |
» 2013-02-27 22:28:59 Twoja alokowana dynamicznie tablica, to tablica struktur, a nie tablica wskaźników do struktur, więc do pól odwołujesz się zwyczajnie ludzie[ i ].imie , bez żadnych gwiazdek czy strzałek. |
|
usmiech |
» 2013-02-28 01:26:25 << removed >> |
|
« 1 » |