在devc++里面正常运行,但在在VC++6.0里面报错。真的是崩溃了

在devc++里面正常运行,但在在VC++6.0里面报错。真的是崩溃了

img

img

这个问题,不是代码问题,是VC++6.0编译器版本问题,把两个指针变量*p1 *p2 定义语句移动到函数开始的地方,就可以解决问题,如下,供参考:

#include <stdio.h>
void swap(int *pt1, int *pt2)
{
    int temp;
    temp = *pt1;
    *pt1 = *pt2;
    *pt2 =  temp;
}
void main()
{
    int a, b, *p1, *p2; // 将*p1 *p2定义在代码开始处
    scanf("%d%d", &a, &b);
    p1 = &a;
    p2 = &b;
    swap(p1,p2);
    printf("%d,%d", a, b);
}

何必多取一举呢,p1和p2可以不要的嘛,直接代入,,
如果要试试修改成这样
int * const p1=&a, * const p2=&b;
同时自定义函数swap的参数也修改成类似的形式

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7801031
  • 以下回答来自chatgpt:

    由于未提供具体的错误信息和代码,无法给出具体的解决方案。建议先检查代码和编译器的兼容性、语法错误和依赖库等方面,同时可以尝试使用不同的编译器和设置进行编译,以找出问题出现的原因。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^