Avatar billede intel4004 Novice
01. november 2004 - 13:14 Der er 3 kommentarer og
1 løsning

Pointer til array med pointer til funktioner

Jeg søger den korrekte metode til at kunne parse et argument til en funktion, som en pointer til et normalt array med pointere til funktioner.

Fik i den? Altså jeg har en funktion som skal modtage en pointer til et (lokalt) array som indeholder pointer til (andre) funktioner.

Jeg synes jeg har styr på pointere men dette er måske en lidt mere langhåret ide. Jeg kan ikke få det til at virke ihvertfald.

void funcA() {}
void funcB() {}

void func1( HVIS TYPE SKAL DENNE FUNKTION MODTAGE?? )
{
  // Her i udvælges den korrekte funktion.
  Og hvordan kalder jeg den funktion med et index til array'et?
}

void func2()
{
  void (*funcPtrArray[])() = {
      funcA,
      funcB
  };
  func1( HER INDSÆTTES POINTER TIL ARRAY funcPtrArray );
}

Mvh Intel4004
Avatar billede sovsekoder Nybegynder
01. november 2004 - 13:25 #1
tataaa :)

void funcA();
void funcB();

void func1(void (*funcPtrArray[])(), int i)
{
  // Her i udvælges den korrekte funktion.
  if(i==0)
    funcPtrArray[0]();
  else
    funcPtrArray[1]();
}

void funcA() {
    printf("funca");
}
void funcB() {
    printf("funcb");
}



int _tmain(int argc, _TCHAR* argv[])
{
    void (*funcPtrArray[])() = {
        funcA,
        funcB
    };
    func1(funcPtrArray, 0);
    func1(funcPtrArray, 1);

    return 0;
}
Avatar billede sovsekoder Nybegynder
01. november 2004 - 13:26 #2
har puttet parametren "i" ind i func1, så når man kalder func1(funcarr, 0) kaldes første element i arrayet, ellers kaldes det andet - bare for at vise princippet
Avatar billede intel4004 Novice
01. november 2004 - 13:41 #3
sovsekoder>

Dit superkode virker glimrende :) Troede ikke det var så let :)

Du har lige tjent 60 point - læg lige et svar.

Mvh Intel4004
Avatar billede sovsekoder Nybegynder
01. november 2004 - 13:42 #4
tak :)
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