I'm pretty new to C coding, and pointers are something I'm having a lot of trouble with. I'm trying to write a program that takes in 2 pointers as parameters, adds the value of the first to the second, then returns the value of the first. What I've written is this:
int foo(int *g, int *h){ int a; a = *g; *h += a; return a; }
However, I am getting a segmentation fault error using an online compiler. I read that these are caused by rogue pointers, but I'm not sure where the error is. Can someone help?
EDIT:I'm calling this function this way:
main(){ int* x; *x = 3; int* y; *y = 4; int z = foo(x, y); printf("%d", z);}
I thought that was the way to declare a pointer, and that using (*) to dereference it was how to assign it a value. Am I incorrect?