Zdravím,
chcem sa spýtať, že keď mám v C++ dvojrozmerné pole ako premennu zadanú takto: **array , ako môžem pristupovať k jednotlivým prvkom. Napr. keď som mal jednorozmerné tak to bolo *array a pristupoval som *(array + i)
Som z tych pointrov trochu mimo a na toto fakt neviem prist. Dik
No takto sa k prvkom pola pristupovalo mozno za cias mojich rodicov. Preco nepouzijes operator[]? Kedze ani nemam momentalne kde vyskusat co ti poradim, len tak trepnem z hlavy, ze skus
Pretoze to mi len ako jedine asi dava logiku. Zoberie adresu pointra, pripocita I, a 2 krat zdereferencuje. Ked to budem mat kde vyskusat, tak ti viac poradim. Zatial takto.
lebo mam zadanie ze parameter ma vyzerat takto **array, ... a ako pristupim k prvku array[j] ?? Ty si mi tam ukazal len s tym j. Samostatne array[j] nefunguje tak ako nefungovalo array pri jednorozmernom poli
//autoeditácia príspevku (29 Okt 2011, 15:03)
uz to mam bolo to *(*(array + j) + i)
K prvkom takehoto pola int *pole; sa pristupuje operatorom []. mozes aj takto *(array + i), ale je to neprakticke. Inak dvojrozmerne polia sa nepouzivaju, stretnes sa s tym iba v matlabe.
S tym by som troska nesuhlasil. Ano, nenajde sa vela rieseni pri ktorych potrebujes ukladat informacie do dvojrozmerneho pola, ale su pripady kedy sa najde ze je treba pouzit dvojrozmerne pole. Takze stretnut sa s tym stretnes rozne, nie len v matlabe
Ako pointrer na pointer je bezna vec z C alebo objekt triedy ako pointer ma v sebe pointer na sameho seba. V tom matematickom ponati, ked sa rozpravame o dvojrozmernom poli ako matici alebo aj obraz, sa uklada do jednorozmerneho pola, ktore sa pri vypocte prehladava ako dvojrozmerne. Dvojrozmerne polia typu [][] su skor skolske riesenia. Dnes sa viac pouziva STL na vyssej urovni v C++. Ale toto je skor skolska uloha.
Dvojrozmerne pole mozes aj takto prehladat *(array + j). Ak chces pouzit takyto zapis int **aray; , tak ti odporucam si nastudovat aj dynamicku alokaciu pamate, najdes o tom vela tutorialov na nete.
Aha, no ked sa tu uz rozpravame o urovni mimo skoly tak to hej. Dvojrozmerne pole som mimo skolskych zadani hadam ani nevidel. Dnes sa uz vacsinou programuje pomocou OOP, cize tam ani nejako neni nutnost to ukladat do niecoho takeho. Co sa tyka STL tak to mas pravdu. Ja som teraz dlhe roky robil v C++, ale momentalne idem na Objective C kvoli iPhone aplikaciam. Tam su vsetky tieto dictionaries atd nativne v SDK.
PS: Minule som v jednej aplikacii musel pouzit polia ukladane v dictionary, lebo uz som mal aplikaciu prakticky hotovu a nechcelo sa mi prirabat dalsiu classu v ktorom by som to pole ukladal. Ale tiez je pravda ze som do tej classy nic ine okrem toho pola nemal dat, tak aj preto som to nespravil.