68.5심사문제(함수포인터)
, . JG님이 작성int(*fp)(int*, int*);
fp = add;
fp = sub;
fp = mul;
fp = div;
if(strcmp(funcName, "add"))
{
fp();
}
도대체 어느 부분이 잘못됬는지 모르겠는데... 알려주실수 있나요?
마지막에 fp에 add주소값 받아오라는것이 좀 걸리는데.. 어떻게해야하나요?
회신: 68.5심사문제(함수포인터)
, . JG님이 작성int(*fp)(int*, int*);
fp = &add;
fp = ⊂
fp = &mul;
fp = ÷
if (strcmp(funcName, "add")==0)
fp(&num1, &num2);
else if (strcmp(funcName, "sub")==0)
fp(&num1, &num2);
else if (strcmp(funcName, "mul")==0)
fp(&num1, &num2);
else
fp(&num1, &num2);
이렇게 바꿔도 계속 오류뜨는데 어떻게 고쳐야 하나요?
회신: 68.5심사문제(함수포인터)
, . JG님이 작성먼저 scanf("%s %d %d", funcName, &num1, &num2);
로 받으니깐 add나 sub, div, mul등 너가 넣고 싶은걸 먼저넣고 그 함수로 가서 숫자를 입력받는 거니깐.
너가 sub를 입력하면 else if(strcmp(funcName, "sub")==0)이니깐
이 코드 안에 fp = ⊂로 함수 주소로 가서 값을 받는다.
이때 fp(&num1, &num2)로 fp안에 인자를 받아줘야한다.(감사합니다!)