Ahoj.. potřeboval bych poradit jak m?m p?ed?vat obsah n?kolika rozm?rn?ho pole jako argument funkce. Ud?lal jsem to takto:
volamfunkci(pole);
int volamfunkci(int pole[4][4]){ }
Takto to funguje, ale potřeboval bych to ud?lat tak, aby sem nemusel zad?vat "rozm?r" toho pole.. Pr? to jde n?jak p?es ukazatel: "ARRAY *pole", ale nevím jak :) d?kuju
Fórum › C / C++
Předávání pole jako argument funkce
int pole[2][2] { {1,2}, {3,4} };
int moja_fcia(int* viacrozmerne_pole, unsigned int velkost_pola)
{
if (velkost_pola != 4*sizeof(int)) {
return NEJAKA_ERROR_HODNOTA;
}
}
//zavolam
moja_fcia(pole, sizeof(pole)); /*size neskusaj pouzit na dynamicky alokovane pole*/
Polia sa chovaju bez [] ako ukazovatele na nejaky buffer.. takze takto ich jednoducho dostanes do funkcie.. s tym ze je dobrym zvykom drzat si info o velkosti pola a predavat to ako argument.. je to preto lebo tam mozes narvat kadeco a aby ti to nepadlo na zaciatku fcie je treba otestovat ze ci je velkost vyhovujuca..
Inac ak to potrebujes na uchovanie urciitch hodnot s nejakym vyznamom tak radsej pouzi struktury... Rozhodne sa ti s tym bude lebsie kodit a nestrati sa vyznam dat.. Lebo opar mesiacov pozries na to a nebudes vediet co je int[2][2]
pole v C++ je len pointer na jeho zaciatok (aspon jeho nazov ...) cize pole poli je pole pointerov tj. pointer na pointer na nieco ...
takymto sposobom mozes davat f-ciam aj dynamicky alokovanu pamat.
ak ti doftedy nikto nepomoze, tak ti napisem aj zdrojak (teraz nemam cas ... miznem na trening)
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
C# pole jako parametr funkce — založil Geralt
Dynamické pole jako parametr funkce — založil Luk
Pole charu a define jako společný parametr funkce, jde to? — založil Kokobelo
Smí být argument funkce seznam? — založil Arthas
šablonová funkce jako členská funkce třídy - jde to? — založil yaqwsx
Moderátoři diskuze