Sizeof használata függvényben?
void arr_size(int arr[])
{
cout<<sizeof(arr)/sizeof(arr[0])<<endl;
}
Az int* értékével tér vissza, ezért ad 2-t. De ezt hogy lehetne kiküszöbölni?
A sizeof nem erre való, ugyanis a TÍPUS méretét adja vissza.
Amint átadod, az int[] típusa int* lesz, így pointer méretével tér vissza.
Megoldás 1: C-ben és C++ban kötelezően átadod a paraméterként adott tömb mellett a hosszát is
Megoldás 2: std::vector stl tárolót használsz, az tudja a méretét.
Javaslom, hasonló témában olvasd el itt a 11-es számú általam írt kommentet:
https://www.gyakorikerdesek.hu/szamitastechnika__programozas..
Másképp fogalmazva: Az eredeti tömb méretét tudni fogja a sizeof, de ha másik szimbólummal hivtakozol rá (függvény paraméter lokális változóval), akkor már nem.
Másik lehetőség, hogy std::array-t használsz. Ez elemszámot ad vissza.
Azt hiszem az std::array jó lesz egyelőre. De a vektoros megoldást is majd átnézem.
Köszönöm a válaszokat mindenkinek.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!