Kezdőoldal » Számítástechnika » Programozás » Sizeof használata függvényben?

Sizeof használata függvényben?

Figyelt kérdés
A cout<<sizeof(arr)/sizeof(arr[0])<<endl; a függvény törzse. A main-ben ez a sor normálisan lefut, de ha függvényben van, akkor a függvény nem azt az eredményt adja vissza. Tehát tömb méretének megállapításához nem érdemes függvényt írni?
2020. nov. 10. 10:48
 1/5 anonim ***** válasza:
Másold be a függvényed, ott lesz a hiba.
2020. nov. 10. 10:51
Hasznos számodra ez a válasz?
 2/5 A kérdező kommentje:

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?

2020. nov. 10. 11:13
 3/5 anonim ***** válasza:
88%

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..

2020. nov. 10. 13:48
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:
63%

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.

[link]

2020. nov. 10. 15:00
Hasznos számodra ez a válasz?
 5/5 A kérdező kommentje:

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.

2020. nov. 12. 10:40

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!