Kezdőoldal » Számítástechnika » Programozás » Függvénynél hogyan lehet...

Függvénynél hogyan lehet megadni egy tömb méretét?

Figyelt kérdés

A függvényparamétereknél a szögletes zárójelet üresen kell hagyni.


[link]


2020. nov. 5. 17:56
 1/10 anonim ***** válasza:
Sehogy, egy függvénynek nem mondod meg mekkora tömböt vár paraméterül, csak azt, hogy egy tömböt vár.
2020. nov. 5. 22:16
Hasznos számodra ez a válasz?
 2/10 anonim ***** válasza:
Miért kéne üresen hagyni? Különben a belinkelt módszer is teljesen jó.
2020. nov. 5. 22:24
Hasznos számodra ez a válasz?
 3/10 A kérdező kommentje:
De ha nem adjuk meg a tömb méretét, akkor honnan tudja, hogy mekkora a tömb mérete és hogy mennyi elem férhet bele?
2020. nov. 6. 17:26
 4/10 anonim ***** válasza:
Úgy, hogy átadod neki paraméterként. Nem is értem, mert a linkelt megoldásban pontosan ez van benne. Vagy meghatározod fgv.-en belül a tömb hosszát. Számtalan módszer van rá.
2020. nov. 6. 17:29
Hasznos számodra ez a válasz?
 5/10 anonim ***** válasza:

void foo(int _size, int tmb[]) teljesen ekvivalens

void foo(int _size, int* tmb) -vel


A tömb nem más mint egy pointer a legelső elemre és nem több, nem tartalmaz információt a saját méretéről. A te felelősséged, hogy ismerd a méretét és ne írj a tömb utáni memóriaterületre. Ha nagyobb tömbre van szükséged, akkor kell egy új tömböt foglalnod majd át kell másolni az elemeket.


Ha szeretnéd az adatokat együtt kezelni akkor létrehozhatsz ehhez egy struktúrát pl.

struct IntArray {

int* tmb;

int size;

}

2020. nov. 6. 21:22
Hasznos számodra ez a válasz?
 6/10 A kérdező kommentje:

Ha jól csináltam, akkor viszont le kéne futnia függvényhíváskor.

A mainben először deklaráltam a hosszát, aztán a tömböt, utána jött a függvényhívás. A main előtt pedig definiáltam a függvényt, de így se jó. A tömb szögletes zárójelével van valami.


int main()

{

int _size = 10;

int tmb[_size];


arr_upload_index(_size,tmb[]);


return 0;

}

2020. nov. 7. 18:29
 7/10 anonim ***** válasza:
Az "így se jó" egy kicsit tág. Mi a hiba?
2020. nov. 7. 19:03
Hasznos számodra ez a válasz?
 8/10 anonim ***** válasza:
100%
A függvényhívásnál nem kell megadni a szögletes zárójelet, azt csak a függvény fejlécében kell.
2020. nov. 7. 19:04
Hasznos számodra ez a válasz?
 9/10 anonim ***** válasza:
0%

#6 Nem fix változóval definiálni a tömb méretét nem túl bölcs dolog...


Paraméter átadásra példa:

arr_upload_index(10, tmb[]);

2020. nov. 7. 20:06
Hasznos számodra ez a válasz?
 10/10 anonim ***** válasza:

Pl. így csinálhatod:


[link]


#include <stdio.h>


void foo(int size, int arr[]){

for (int i=0; i<size; i++){

printf("\n%d", arr[i]);

}

}


int main() {

int arr[] = {42, 420, 13};

int size = sizeof(arr) / sizeof(int);

foo(size, arr);

}

2020. nov. 8. 00:50
Hasznos számodra ez a válasz?

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!