#include <stdio.h> #include <stdlib.h> #include <string.h> typedef int (*funptr)(int); typedef int (*operation)(int,int); typedef int (*fptrOperation)(int,int); operation operations[128]={NULL}; int add(int num1,int num2) { return num1+num2; } int substract(int num1,int num2) { return num1-num2; } void initializeOperationsArray() { operations['+'] = add; operations['-'] = substract; } int evaluateArray(char opcode,int num1, int num2) { operation operation; operation = operations[opcode]; return operation(num1,num2); } int sequare(int num) { return num*num; } int main() { int n=5; int result=0; char a='a'; funptr fptr; int* arr[5]={NULL}; fptr = sequare; result = fptr(n); printf("%d\r\n",a); printf("%d\r\n", result); initializeOperationsArray(); printf("%d\r\n",evaluateArray('+',5,6)); printf("%d\r\n",evaluateArray('-',5,6)); for(int i=0;i<5 ;i++) { arr[i]= (int*)malloc(sizeof(int)); *arr[i]=i; } for(int i=0;i<5;i++) { printf("%d : %d\r\n",arr[i],*arr[i]); free(arr[i]); } for(int i=0;i<5;i++) { *(arr+i) = (int*)malloc(sizeof(int)); **(arr+i) = i; } for(int i=0;i<5;i++) { printf("%d : %d : %d \r\n",(arr+i),*(arr+i),**(arr+i)); free(*(arr+i)); } return 0; }