#include <stdio.h>
typedef struct {
int n;
int (*funcPtr)(int);
} functionPointer;
int factorial(int num) {
if (num == 0 || num == 1)
return 1;
else
return num * factorial(num - 1);
}
int main()
{
functionPointer fp;
fp = (functionPointer) { .n = 5, .funcPtr = &factorial };
printf("Factorial of %d = %d\n", fp.n, fp.funcPtr(fp.n));
return 0;
}
/*
run:
Factorial of 5 = 120
*/