Skicka array till funktion

C/C++

1 svar · 387 visningar · startad av Addeladde

Medlem sedan jan. 20013 406 inlägg
Trådstart#1

Hej

hur gör jag i C för att skicka en hel array till en funktion.
och hur returnerar jag hela arrayen (antagligen på samma sätt).

Har försökt med:

int func(int arr[])
{
   return arr[];
}

in main(void)
{
  int arr[20];
 
  func(arr[]);
  return 0;
}

Men det fungerar inte.

Medlem sedan maj 20018 027 inlägg
#2

Dels returnerar inte funktionen en array. Den returnerar ett heltal, så som den är deklarerad. Dessutom ska du inte anropa den som func(arr[]), utan som func(arr). arr är adressen till första elementet i arrayen. I och med att du har skickat över adressen, istället för arrayen, behöver du inte returnera arrayen. Adressen är ju oförändrad. Det är vad den pekar på, som har förändrats. Alltså kommer din gamla oförändrade pekare att peka på det förändrade innehållet. Skriv om din funktion så att den returnerar en int, eftersom du har deklarerat att den ska returnera int. Annars kan du också skriva att den ska returnera en heltalspekare, och då returnera arrayen den vägen genom return arr.

252 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
116 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)