gpt4 book ai didi

c - 为什么这段代码(指向单个变量的两个指针)显示段错误?

转载 作者:太空宇宙 更新时间:2023-11-04 06:24:18 25 4
gpt4 key购买 nike

我试图通过 ptr1 和 ptr2 访问相同的变量 i1 但它给出了段错误

   int i1,i2, *ptr1, *ptr2;
i1 = 2;
ptr1 = &i1;
ptr1 = ptr2;
printf("&ptr1 = %p and &ptr2 = %p\n",&ptr1,&ptr2);
printf("value at ptr1 and ptr2 are : %d and %d\n",*ptr1,*ptr2);
i1 = 3;
printf("value of ptr1 and ptr2 = %d,%d\n",*ptr1,*ptr2);
*ptr1 = 4;
printf("value of ptr1 and ptr2 = %d,%d\n",*ptr1,*ptr2);

i2 = *ptr2;
printf("value of i2 = %d\n",i2);

最佳答案

您的问题如下:ptr2 未初始化,ptr1 从中获取未初始化的值。线路

   ptr1 = &i1;

将i1的地址赋值给ptr1,但是

   ptr1 = ptr2;

将未初始化的值从 ptr2 取到 ptr1,所以现在 ptr1 和 ptr2 都包含未初始化的数据。

尝试而不是做

   ptr2 = ptr1;

即ptr1 和 ptr2 应该调换位置。

关于c - 为什么这段代码(指向单个变量的两个指针)显示段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29173126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com