ai didi

c++ - 在 C++ 中创建可修改的字符串文字

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:57:10 24 4
gpt4 key购买 nike

是否可以在 C++ 中创建可修改的字符串文字?例如:

char* foo[] = {
"foo",
"foo"
};
char* afoo = foo[0];
afoo[2] = 'g'; // access violation

这会产生访问冲突,因为“foo”分配在只读内存中(我相信是 .rdata 部分)。有没有办法强制“foo”进入可写内存(.data 部分)?即使通过 pragma 也是可以接受的! (Visual Studio 编译器)

我知道我可以做 strdup 和其他一些事情来解决这个问题,但我想具体知道我是否可以按照我的要求去做。 :)

最佳答案

由于这是 C++,“最佳”答案是使用字符串类(std::stringQStringCString等,具体取决于您的环境)。

要直接回答您的问题,您不应该修改字符串文字。该标准说这是未定义的行为。您确实需要以一种或另一种方式复制字符串,否则您正在编写不正确的 C++。

关于c++ - 在 C++ 中创建可修改的字符串文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3055240/

24 4 0
文章推荐: c - 如何搜索当前目录中的文件和当前目录下目录中的文件?
文章推荐: java - Android 的 SharedPreferences 在 Java 中的等价物是什么?
文章推荐: linux - 以root身份运行sudo时环境不同?
文章推荐: android - 从 GoogleSignInAccount 获取高质量的个人资料图片
塔克拉玛干
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com