首页 > C语言 指针 赋值

C语言 指针 赋值

#include <stdio.h>
int main()
{
    int* p;
    *p=8;
    printf("%d\n",*p);
}

这个怎么错了, 给p指向的内存赋值啊?


定义了一个野指针,内存不安全


指针必须指向一个对象, 而你代码中的p指针,没有指向任何对象, 所以一定会报错. 至少要这样int *p ; int a ; p = &a;


试试

#include <stdio.h>
int main()
{
int a;
int *p=&a;
*p=8;
printf("%d\n",*p);
}

 这是一个情人节没有对象的野指针!

指针的意义在于它指向一段内存,然后你通过指针可以去操作那段内存。你只是声明了一个指针,并没有让它指向某段内存。然后你让一段“并不存在”的内存保存一个值8,当然要报错了。


指针未分配内存。


int* p;*p=8;这两个语句是声明了一个没有初始化的指针,然后给指针指向的内存区域赋值。
因为指向区域不受保护,可能被其他操作覆盖,这时候有可能会输出乱码,编译器不报错但会有警告。

【热门文章】
【热门文章】