gpt4 book ai didi

c - C 中的段错误

转载 作者:行者123 更新时间:2023-11-30 21:47:55 24 4
gpt4 key购买 nike

作为培训的一部分,我正在学习这个指针到指针的概念。但我在运行此程序时遇到段错误。

有人可以帮我解决这个问题吗?

下面是代码片段:

main()
{
int *ptr;
init(&ptr);
printf(" %d \n",*ptr);
}

init( int **p_ptr)
{
**p_ptr=56;
}

但是下面的 init() 函数效果很好。

init( int **p_ptr)
{
int i=56
**p_ptr=&i;
}

最佳答案

首先,请编辑您的消息,以便代码能够正常显示(请阅读帮助文档以了解如何执行此操作)。

在 C 中,指针被分配一个地址,当在第二个函数中分配指针 &i 时,您分配 i 的地址(但它不应该工作,因为 i 在函数末尾被销毁,因为它是一个局部变量)。当您执行 **p_ptr=56; 时,您试图将您可能无权访问的地址 56 分配给指针,这就是您出现段错误的原因。

希望这有帮助!

关于c - C 中的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35427231/

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