jelihe 发表于 2020-7-13 22:59:08

0x00007FFCFD0BDDF6 (ucrtbased.dll)处(位于 Project1.exe 中)引发的异常: 0xC0000...

c学到指针函数和函数指针,最后面敲了小甲鱼的那个例子但会报
0x00007FFCFE51DDF6 (ucrtbased.dll)处(位于 Project1.exe 中)引发的异常: 0xC0000005: 读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突。
半天也没解决 求助一下大佬们

------------------------------------------------------------------------------------

#include <stdio.h>
int add(int a, int b);
int sub(int a, int b);
int boss(int (*fp)(int, int),int a, int b);
int(*select(char op))(int, int);
int add(int a, int b) {
        return a + b;
}
int sub(int a, int b) {
        return a - b;
}
int boss(int (*fp)(int,int),int a, int b) {
        return(*fp)(a,b);
}
int(*select(char op))(int, int) {
        switch (op)
        {
        case'+':
                return add;
        case'-':
                return sub;

        }
}
int main() {
        int a,b;
        int (*fp)(int, int);
        char op;
       
        printf("请输入一个式子(1+3): ");
        scanf_s("%d%c%d", &a, &op, &b,20);
        fp = select(op);
       

        printf("%d %c %d = %d\n", a, op, b, boss(fp, a, b));
       
       
        return 0;


}

巴巴鲁 发表于 2020-7-14 19:30:05

我复制你的代码进来,输入scanf_s会报错,但把_s去掉就能正常输出了
页: [1]
查看完整版本: 0x00007FFCFD0BDDF6 (ucrtbased.dll)处(位于 Project1.exe 中)引发的异常: 0xC0000...