gpt4 book ai didi

c++ - 字符数组文字在何处以及如何创建?

转载 作者:太空狗 更新时间:2023-10-29 23:51:10 25 4
gpt4 key购买 nike

<分区>

我一直在用 c 语言对字符串进行试验。在这段代码中。

#include<stdio.h>
int main()
{
char *arr="output";
*arr='s';
printf("%s",arr);
return 0;
}

字符串“output”在内存中的什么位置被创建,并且我们有指针 arr(驻留在堆栈中)最初指向该字符串,为什么不能将其他一些字符分配给该指针?当我尝试运行这个程序时,我看到运行时错误信号:11 这是段错误。

我了解到,在 C++ 中,字符串“输出”在只读内存中创建,这会导致在编译过程中“不推荐使用从字符串常量到‘char*’的转换”。C 中的行为是什么?

有人能解释一下为什么这会导致段错误吗?这个字符串“输出”首先在哪里创建。

谢谢。

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