gpt4 book ai didi

带指针的 C 函数在一台计算机上工作,在另一台计算机上不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 05:05:11 26 4
gpt4 key购买 nike

#include <stdio.h>
void swap (int *a, int *b)
{
int *tmp;
*tmp = *a;
*a = *b;
*b = *tmp;
}

int main ()
{
int x = 5;
int y = 7;
swap (&x,&y);
printf ("\n x = %d \n y = %d \n",x,y);
}

我正在使用代码块,但这段代码无法运行,而且我不明白为什么...在一台计算机上它运行良好,但在另一台计算机上它根本无法运行。有什么帮助吗?提前致谢。

最佳答案

int tmp;
tmp = *a;
*a = *b;
*b = tmp;

您需要的是一个变量 tmp 来存储值,而不是指针 *tmp

下面的代码确实是一种糟糕的方式,但是

int *tmp = malloc(sizeof(int));

*tmp = *a;
*a = *b;
*b = *tmp;

完成后请使用释放内存

free(tmp);

关于带指针的 C 函数在一台计算机上工作,在另一台计算机上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27924035/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com