*P问题,出错,报错,如何解决

图中这个p=i报错,怎么理解这个,这个p=i是不是跟int P中的P没有关系还是怎么说

img

你的代码中,p是一个指向int的指针。在使用*p赋值之前,p并没有指向任何有效的内存空间。当你试图访问这个无效内存空间时,就会出现报错。

  • 你需要先分配内存给p指向,例如使用malloc或new进行动态内存分配。例如:
p = malloc(sizeof(int));
*p = i;

或者

p = new int;
*p = i;

int *p定义了指针p, * p=i是错误的,一边是指针一边是整型变量
p = &i;是把i的地址给p, 这样是正确的写法

p没有分配内存

p没分配空间,当然是错了。改成p=&i

楼上说的对,p没分配空间,当然是错了。改成p=&i

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632