#include "stdio.h"
#include "malloc.h"
typedef char* string;
typedef struct Calculator
{
void *pointer;
void (*PRINT)(int);
int (*ADD)(int,int);
}Cal;
void print(int num)
{
printf("Number:%d\n",num);
}
int add(int a,int b)
{
return a+b;
}
Cal a = {
.PRINT = print,
.ADD = add
};
int main(void)
{
void *p;
string str = "hello world!";
Cal *b = (Cal*)malloc(sizeof(Cal));
a.PRINT(18);
b->ADD = add;
printf("b.ADD:%d\n",b->ADD(2,3));
printf("%s\n",str);
p = &str;
printf("%s\n",*((string*)p));
b->pointer = &str;
printf("%s\n",*((string*)(*b).pointer));
a.pointer = &str;
printf("%s\n",*((string*)a.pointer));
return 0;
}