【问题标题】:Changing chars in char pointer variable [duplicate]更改 char 指针变量中的字符 [重复]
【发布时间】:2014-02-28 18:37:28
【问题描述】:

我正在尝试更改 char 指针变量指向的字符:

char *test3 = "可变"; printf("预期:可变,结果:%s\n", test3); 测试(测试3); printf("预期的 tutable,结果:%s\n", test3); 无效 testt(char *s) { *s = 't'; // 失败,我得到分段错误错误 }

为什么上述方法不起作用?指针变量指向的字符是不可变的吗?如果是这样,我将如何修改指针变量的内容?

【问题讨论】:

    标签: c pointers


    【解决方案1】:

    那是因为您的 char * 指向一个字符串文字,而字符串文字几乎在每个现代操作系统中都位于只读存储中。

    尝试将其复制到堆栈中:

    char test3[] = "mutable";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-14
      • 2023-04-01
      • 2019-01-09
      • 1970-01-01
      • 2023-03-08
      • 2020-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多