【发布时间】:2014-03-03 16:35:11
【问题描述】:
我对 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);
}
我认为这是声明指针的方式,使用 (*) 取消引用它是如何为其分配值。我错了吗?
【问题讨论】:
-
在通话之前确保一切正常。
-
你是怎么调用这个函数的?向我们展示一个简短的完整示例
标签: c pointers segmentation-fault