我试图在c ++中交换数组和指针
我的代码如下:
void foo(int* a, int* b);
void main()
{
int *a = NULL;
int b[6]={2,3,5,6};
foo(a,b);
}
void foo(int* a, int b[])
{
int * c;
c=a;
a=b;
b=c;
}
Run Code Online (Sandbox Code Playgroud)
当我退出方法时没有改变,
在方法内,一切都工作,但当方法返回时没有任何变化.
我的问题是:
A)我的错误是什么?B)我该如何解决它.
你的错误是假设数组是指针.他们不是.他们可以腐烂到指针.
你不能改变b,但你可以a通过引用传递它来改变:
void foo(int*& a, int b[])
{
int * c;
c=a;
a=b;
}
Run Code Online (Sandbox Code Playgroud)