gpt4 book ai didi

c - 为什么修改字符串文字会导致段错误?

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

为什么修改预初始化的字符串文字会导致段错误?例如:

char *str = "Hello world";
str[0] = 'h';

当你初始化str时到该字符串值,编译器不会自动为该字符串常量分配内存,将其起始位置分配给 str并在程序退出时释放它?

最佳答案

它位于进程地址空间的只读部分,因为字符串文字是常量。 (str 变量不在只读空间中,但应使其指向有效的可写位置,然后才能按照您的方式使用它。)

关于c - 为什么修改字符串文字会导致段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35414487/

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