gpt4 book ai didi

c++ - C/C++ 字符指针崩溃

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:56:18 24 4
gpt4 key购买 nike

假设一个返回固定“随机文本”字符串的函数写成

char *Function1()
{
return “Some text”;
}

如果程序不小心试图改变值,程序可能会崩溃

Function1()[1]=’a’;

尝试执行此操作会使程序崩溃的函数调用后的方括号是什么?如果您熟悉这一点,将不胜感激任何解释!

最佳答案

您在函数中返回的字符串通常存储在进程的只读部分。试图修改它会导致访问冲突。 (编辑:严格来说,这是未定义的行为,在某些系统中会导致访问冲突。谢谢,John)。

这种情况通常是因为字符串本身与您的应用程序代码一起被硬编码。加载时,指针被建立以指向进程中保存文字字符串的那些只读部分。事实上,无论何时您在 C 中编写一些字符串,它都被视为 const char*(指向 const 内存的指针)。

关于c++ - C/C++ 字符指针崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4226829/

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