Funktion in Array

fish-guts

Erfahrenes Mitglied
Hi Zusammen

Ich versuche, mir mit einem Array einen Haufen Case Marken zu sparen.

Folgendes möchte ich realisieren:

Code:
static char *test[] = {
   { "test1" , funktion1 }
};

Wenn in einem Suchlauf "test" gefunden wird, soll die Funktion funktion1() aufgerufen werden. Gibt es eine Möglichkeit, das irgendwie zu realisieren?

Danke für die Hilfe!

Gruss

FG
 
Hi
schon mal an eine Map gedacht

sowas wie das hier

map<string,void (*)()> fuinctionArray;

Mit freiundlichen Gruß
Cefour
 
Hallo

Sorry, hab noch vergessen hinzuschreiben, dass das Programm in C ist. map scheiedet somit aus. Danke trotzdem :)

Gruss

FG
 
Hallo

Das klingt schon mal nicht schlecht. Wie funktioniert denn nun der Aufruf wenn folgendes gegeben ist:


Code:
struct _function 

typedef struct _function func;

{
   char * functionName;
          void (*f)();
};

static func fn[] = {
   { "test" , funktion1 }
};

static void funktion1(char *arg)
{
   ...
}

Ich habe keinen Peil :(

Gruss

FG
 
jetzt müsstest du dir nur eine noch eine Fuction schreiben die das array nach dem dan namen dursucht und die function ausführt allso so in dieser art

Code:
void fuehreaus(functionStruct * functionArray,char *name,int sizeOfFunctionArray)
{
      int i ;
             for(i = 0; i< sizeOfFunctionArray;i++)
             {
                  if(strcmp(functionArray[i].name,name) == 0)
                  {
                          functionArray[i].f();
                          return;
                  }
             }
}

das ding müsste so klappen gibt aber keine Fehlerausgabe noch sonstwas
aus
Gruß
Cefour
 
Zurück