gpt4 book ai didi

c - 进行指针操作时出现段错误(核心已转储)

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

尝试运行程序时出现段错误(核心已转储)。就是一些简单的指针操作,但是我想不出问题所在。请帮帮我。提前致谢!

int get_address_value(int* ptr) {
return *ptr;
}

void put_value_to_address(int val, int* ptr) {
*ptr = val;
}


int main(int argc, char* argv[]) {
int* ptr;
put_value_to_address(400, ptr);
printf("value in address is %d\n", get_address_value(ptr));

return 0;
}

最佳答案

你有一个未初始化的指针。访问该指针会导致未定义的行为。在您的情况下,未定义的行为表现为段错误/错误。

在更改 put_value_to_address 中指向的值之前,您需要确保 ptr 指向有效的值。

int* ptr = malloc(sizeof(int));

int i;
int* ptr = &i;

如果您使用malloc,请确保释放内存。添加

free(ptr);

main 结束之前。

关于c - 进行指针操作时出现段错误(核心已转储),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33601280/

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