Függvénynél hogyan lehet megadni egy tömb méretét?
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;
}
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;
}
#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[]);
Pl. így csinálhatod:
#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);
}
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!