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.
UlfTMedlem sedan maj 20018 027 inlägg 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.