【发布时间】:2012-07-01 22:44:01
【问题描述】:
以下 C 代码返回“分段错误”错误。我不明白为什么它不返回值 20。我的错误是什么?
#include <stdio.h>
int main()
{
int* n;
*n = 20;
printf("%i\n",*n);
return 0;
}
【问题讨论】:
-
'n' 是一个未初始化的指针值,您在 '*n = 20' 行中取消引用。如果您希望使用指针,则需要确保在尝试取消引用之前将其初始化为指向有效的内存位置。
-
除了已经给出的答案之外,您可以只使用
int n=20并将&n(n 的地址)传递给任何需要int*作为参数的函数。
标签: c pointers segmentation-fault