c - 指针解除引用错误的原因

标签 c pointers dereference

输出是:10,没有错误。

int main(){
    int j=10;
    int *i=&j;
    printf("%d",*i);
    return 0;
}

但它给了我一个错误:

int main(){
int *i;
int j=10;
*i=&j;
printf("%d",*i);
return 0;
}

我知道指针取消引用导致了错误。但这是怎么发生的呢?

最佳答案

因为你使用的是未初始化的指针。 你的 *i = &j 应该是 i = &j

关于c - 指针解除引用错误的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36844561/

相关文章:

c - 当我显示图像时,我无法再使用openGL颜色

html - 以下的 Vim 快捷方式或插件

c++ - strlen 函数总是返回 0

sql - Oracle PL/SQL : How to DEREF from a VARRAY of REFs?

perl - Perl 中的散列取消引用

C++ - 取消引用作为数组元素的指针?

c - 强制某些编译器生成的变量进入特定的 ELF 部分(使用 gcc)

c - 使用指针逐字打印

c - 使用指针类型转换时值发生莫名其妙的变化

c++ - 如何在另一个QVector <QVector <T> *>中动态存储QVector <T>的地址?