Ich bin stecken in einen Funktionszeiger von einem Funktionsparameter zurück zu bekommen. Hier ist ein Beispiel für das, was ich versuche zu tun.Wie Sie eine Funktion von einem Funktionsargument in C abrufen?
int a(int I)
{
return I*I;
}
void get_a(int(*R)(int))
{
R = &a;
}
int main()
{
int(*function)(int) = NULL;
printf("function a=%p\n", a);
get_a(function);
printf("function a=%p\n", &function); // Is never the right address.
return 0;
}
Suche im Netz nicht helfen, ich nur Beispiele für eine Funktion als Parameter finden konnte, so habe ich aufgegeben und versuchte, dieses Problem allein zu lösen.
Dies unterscheidet sich nicht von "wie ein Int von einem Funktionsargument abgerufen wird". Löse dieses Problem zuerst und du wirst das auch verstehen. –
Ihre Funktion get_a() tut genau nichts, weil sie nur einer lokalen Variablen zuweist und dann nichts zurückgibt. Ein guter Compiler könnte es sogar vollständig optimieren. –