Ahojte chcel by som sa vás spýtať ako by vyzerala hlavička funkcie ktorej navratová hodnota je ukazovatel (napr na int). Už som skúsil niekoľko variant ale stále na to nemôžem prísť.
Tiež by som sa chcel spýtať či by ste mi poradili z mojim dalším problémom. Mám napísaný konštruktor triedy ktorý má dva celočíselné parametre. Objekt triedy inicializujem ako ukazovatel na volnej hromade pomocou prikazu NEW (napr. x =new objekt) ale teraz neviem ako presne vyzerá syntax kedže tam ešte niekde treba vsunúť parametre konštruktoru. Nevedel by mi s tým niekto skúsený prosím vás poradiť, lebo na toto je asi aj google prikrátky.
Fórum › C / C++
Ukazovatele
Grungy napsal:
Ahojte chcel by som sa vás spýtať ako by vyzerala hlavička funkcie ktorej navratová hodnota je ukazovatel (napr na int).
int* funkce();
Tiež by som sa chcel spýtať či by ste mi poradili z mojim dalším problémom. Mám napísaný konštruktor triedy ktorý má dva celočíselné parametre. Objekt triedy inicializujem ako ukazovatel na volnej hromade pomocou prikazu NEW (napr. x =new objekt) ale teraz neviem ako presne vyzerá syntax kedže tam ešte niekde treba vsunúť parametre konštruktoru. Nevedel by mi s tým niekto skúsený prosím vás poradiť, lebo na toto je asi aj google prikrátky.
x = new Objekt(prvniParametr, druhyParametr);
Ahojte zas mám problém z ukazovateľmi tak to dávam sem. Mám dvojrozmerné pole celych cisel: int BF[vyska][sirka] . Tiež som si vytvoril ukazovateľ int *ukpole[0][0] ktoré by malo ukazovať na prvý prvok pola BF čiže ukpole[0][0]=&BF[0][0]. Lenže keď chcem nepriamo zistiť hodnotu niektorého prvku pola a napíšem napr. *ukpole[5][5] tak my vypíše chybové hlásenie. Prosím vás neviete mi niekto poradiť čo robím zle. Budem vďačný za každý postreh.
To Grungy : Přes adresovou aritmetiku. ,) Např:
int bla[10][10];
int *bla2 = bla[0];
*bla2 = 1;
bla[0][1] = 2;
bla[1][0] = 3;
int vzdalenost = &bla[1][0] - &bla[0][0];
// pozn: jako foo mám funkci, která vypíše hodnotu z dané adresy
foo(bla2);
foo(bla2 + 1); // vypíše druhý prvek
foo(bla2 + vzdalenost); // vypíše prvek z bla[1][0]
// celý výstup je 1 2 3
Každopádně můžeš udělat i ukazatel na celé pole (případně např do funkce předávat pole referencí). ,)int (*ukbla)[10][10]; // závorka nutná, jinak by to bylo pole ukazatelů
foo(&(*ukbla)[0][0]);
foo(&(*ukbla)[0][1]);
foo(&(*ukbla)[1][0]);
Víc si o tom najdi přes google (linky žádné nemám, C++ jsem se učil z knížky). .)Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Ukazovatele a unsafe code — založil yterbium
Moderátoři diskuze