指针其实是一个常量数组,在未给其初始化时不能进行操作(赋值或修改);
赋值前先指向地址
int a=1,*p;
*p=a
int* p = NULL; // 指针为空或无效地址
*p = 1; // 出错!
此时,指针p并没有被分配地址,这样会存在错误。
解决方法
只要指针指向的地址是有效的就可以了
1.malloc()动态分配
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
int main()
{
int *p;
p=(int *)malloc(sizeof(int));
*p=100;
printf("%d",*p);
free(p);
return 0;
}
---------------------
作者:SuperJackK
来源:CSDN
原文:https://blog.csdn.net/albert19891108/article/details/50479667
版权声明:本文为博主原创文章,转载请附上博文链接!
2.
int a = 5;
int* p = &a; // 有效地址
*p = 1; // 没问题