用函数指针,取代switch,实现跳转表.遇到错误(代码)
     我想用函数指针来,代替switch.编译可以通过,不过,运行的时候返回的值是错误的.我不知道问题出在那里.不好调试,请老师帮助看看.在linux下用gcc编译提示的是段错误.而c++builder里面返回的值是错误的.
代码如下:
#include <stdio.h>
#include <stdlib.h>
//----------------------------------------------
int Add(const int n1,const int n2)
{
    int nt = n1 + n2;
    return nt;
}
//----------------------------------------------
int Sub(const int n1,const int n2)
{
    int nt = n1 - n2;
    return nt;
}
//----------------------------------------------
int main(void)
{
   extern int Add(const int n1,const int n2);
   extern int Sub(const int n1,const int n2);
   int n,n3;
   int n1 = 10;
   int n2 = 20;
   scanf("%d",n3);
   int (*lpFunc [])(const int n1,int n2) = {Add,Sub};
   n = lpFunc[n3](n1,n2);
   printf("%d\n",n);
}