Avatar billede mgsj Nybegynder
09. juni 2003 - 17:54 Der er 9 kommentarer og
1 løsning

Returnere array

Hej!

Kan man lave en funktion der returnerer et array.
Neden stående er forkert, men giver måske en idé om hvad jeg mener.

Det er en funktion som skal lave et int om til et binær værdi og lægge det ind i et array.

bool array[] DecToBin (int)

Håber I forstår spørgsmålet, og håber på gode svar.

Mvh
Michael
Avatar billede arne_v Ekspert
09. juni 2003 - 17:58 #1
bool *DecToBin

så returnerer du en pointer til et array.
Avatar billede arne_v Ekspert
09. juni 2003 - 17:59 #2
Husk at returnere enten en pointer til noget globale memory
eller en pointer til noget dynamisk allokeret memory - aldrig returnere
en pointer til et lokalt array i funktionen.
Avatar billede mgsj Nybegynder
09. juni 2003 - 18:04 #3
Hvad hedder pointeren hedder den *DecToBin?

Vil det sige at pointeren peger på hele arrayet og ikke bare en plads, kan man få den til at pege på en enkelt plads, i arrayet?

Hvordan vil prototypen se ud, vil den så hedde bool *DecToBin(int);
og hvordan vil funktionskaldet så se ud?

Mvh
Michael
Avatar billede arne_v Ekspert
09. juni 2003 - 18:04 #4
Eller drop funktions resulatet og send det med over som argument.
Avatar billede arne_v Ekspert
09. juni 2003 - 18:05 #5
bool res[10];

bool *DecToBin(int v)
{
  // få værdier fyldt i res
  return res;
}
Avatar billede arne_v Ekspert
09. juni 2003 - 18:05 #6
bool *DecToBin(int v)
{
  bool *res = (bool *) malloc(10*sizeof(bool));
  // få værdier fyldt i res
  return res;
}
Avatar billede arne_v Ekspert
09. juni 2003 - 18:06 #7
void DecToBin(int v, bool res[])
{
  // få værdier fyldt i res
  return;
}

man kan godt rette i et argument når det er et array !
Avatar billede mgsj Nybegynder
09. juni 2003 - 18:14 #8
Altså nu ligger det således at vi har en klasse, og fra denne klasse kan der kaldes en funktion som skal returnere et array, ud fra et tal den får fra en funktion i klassen.

skal vi så lave et array som en attribut, og returnere denne når der bliver kaldt på funktionen via et objekt

eller skal vi returnere et array.
Avatar billede arne_v Ekspert
09. juni 2003 - 18:21 #9
Du kan ikke returnere et array.

Du kan kun returnere en pointer til et array.

Du kan godt returnere en pointer til et array som er member af klassen.
Avatar billede bertelbrander Novice
09. juni 2003 - 19:38 #10
Du kan ikke returnere et array direkte, men du kan returnere en struct. Så pak array'et ind i en struct og returner denne:

typedef struct
{
  int array[10];
}array_type;

array_type func(...)
{
  array_type array;
  ...
  return array;
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester