我对C编程非常陌生,指针是我遇到很多麻烦的东西。我正在尝试编写一个程序,它以2个指针作为参数,将第一个值添加到第二个值,然后返回第一个值。我写的是这样的:分割错误,指针问题?
int foo(int *g, int *h)
{
int a;
a = *g;
*h += a;
return a;
}
但是,我正在使用在线编译器得到分段错误错误。我读到这些是由无名指针造成的,但我不确定错误在哪里。有人可以帮忙吗?
编辑: 我调用这个函数是这样的:
main()
{
int* x;
*x = 3;
int* y;
*y = 4;
int z = foo(x, y);
printf("%d", z);
}
我认为这是声明指针的方式,而且使用(*)取消对它的引用是如何给它赋值。我错了吗?
确保在通话之前一切正常。 –
你是怎么调用这个函数的?向我们展示一个简短的完整示例 – halex