#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int add(int *a, int *b)
{
return *a + *b;
}
int sub(int *a, int *b)
{
return *a - *b;
}
int mul(int *a, int *b)
{
return *a * *b;
}
int div(int *a, int *b)
{
return *a / *b;
}
int main()
{
char funcName[10];
int num1, num2;
scanf("%s %d %d", funcName, &num1, &num2);
int (*fp)(int*,int*);
switch(funcName){
case "add" :
fp = add;
break;
case "sub" :
fp = sub;
break;
case "mul" :
fp = mul;
break;
case "div" :
fp = div;
break;
default : break;
}
printf("%d\n", fp(&num1, &num2));
return 0;
}
저는 일단 scanf로 받은 fucName을 switch로 판별해서 위에서 정의한 함수포인터에 함수의 주소를 넣어서 작동시킬려고 하였습니다. 게속해서 switch에서 문제가 생긴다고 뜨는데 어디서 문제가 일어나는지 모르겠습니다;;