我有点新的指针。我在运行ububtu中使用gcc编译器指定的代码时收到此错误。获得赛格故障
Error:
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7de7c13 in _dl_fini() at dl-fini.c:235
235 dl-fini.c: No such file or directory
代码 。
#include <stdio.h>
#include <cmath>
#include<stdlib.h>
void update(int *a,int *b) {
int *c;
*c=*a;
*c=abs(*a+*b);
*b=abs(*a-*b);
*a=*c;
}
int main() {
int a, b;
int *pa = &a, *pb = &b;
scanf("%d %d", &a, &b);
update(pa, pb);
printf("%d\n%d", a, b);
return 0;
}
请发表任何有关此建议/解决方案。
变化'INT * C;''到INT℃;'和'每个* C'为'C'。您可以为指针分配内存,或者只是将该变量放在堆栈上。 –
这个特殊的问题可以通过适当的选项来确定。从g ++(和clang ++):“警告:'c'在此函数中使用未初始化[-Winitinitialized]”。 –
欢迎来到SO。荣誉 - 你的代码不难编译,所以早期的贡献通常不会。它似乎比'C++'(不是相同的语言)更'C',所以请检查你的标签。 –