【发布时间】:2016-05-17 06:30:29
【问题描述】:
我已经开始学习 C 语言中的指针了。
当我尝试在函数中返回指针时,我收到segmentation fault 错误。
代码如下:
#include<stdio.h>
int *sum(int *, int *);
int main(void)
{
int a, b;
int *ans = NULL;
printf("Enter number a : ");
scanf("%d", &a);
printf("Enter number b : ");
scanf("%d", &b);
ans = sum(&a, &b);
printf("Sum = %d", *ans);
return 0;
}
int *sum(int *p, int *q)
{
int *result = NULL;
*result = *p + *q;
return (result);
}
然后输出:
Enter number a : 10
Enter number b : 20
Segmentation fault
当result 被声明为指针时,sum 函数中发生分段错误。但是,我无法弄清楚同样的原因。任何有关这方面的帮助都是非常可观的。
【问题讨论】:
-
取消引用空指针是不合法的。
标签: c pointers segmentation-fault