我對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