#include
#include
void foo(int *a, int *b);
void foo(int *a, int *b) {
*a = 5;
*b = 6;
a = b;
}
int main(void) {
int
It does work; it just doesn't do what you think it does.
In foo()
, a = b
changes the pointer a
to point to whatever b
points to. It has no effect on anything outside of the function; it only changes the pointers.
If you want to change the value of the int pointed to by a
to be the same as the value of the int pointed to by b
, you need to use *a = *b
, similar to how you do the assignments in the function already.