Ale*_*gić 0 c swap pointers function
#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);
}
Run Code Online (Sandbox Code Playgroud)
我正在使用代码块,而且这段代码不起作用,我不明白为什么......在一台计算机上它运行得很好但在另一台计算机上它根本不会运行.有帮助吗?提前致谢.
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
Run Code Online (Sandbox Code Playgroud)
你需要的是一个tmp存储值而不是指针的变量*tmp.
下面的代码实际上是一个很糟糕的方式,但是
int *tmp = malloc(sizeof(int));
*tmp = *a;
*a = *b;
*b = *tmp;
Run Code Online (Sandbox Code Playgroud)
完成后请使用释放内存
free(tmp);
Run Code Online (Sandbox Code Playgroud)