gpt4 book ai didi

c - 使用 strcpy 和指向字符的指针

转载 作者:行者123 更新时间:2023-11-30 20:00:43 25 4
gpt4 key购买 nike

为什么这段代码会崩溃?是不是strcpy没有正确使用?

strcpy code

最佳答案

变量msg1指向字符串文字占用的内存。字符串文字不可修改。任何修改字符串文字的尝试都会导致未定义的行为。

来自 C 标准(6.4.5 字符串文字)

  1. It is unspecified whether these arrays are distinct provided their elements > have the appropriate values. If the program attempts to modify such an array, the behavior is undefined.

请考虑到,如果您想使用标准 C 函数 strcpy 将字符串复制到字符数组,则该数组必须有足够的内存来容纳该字符串(包括其终止零)。

您可以通过用指针替换字符数组来使代码有效。例如

char msg1[15] = "Hello World"; 
//...
strcpy( msg1, "Hello New York" );

关于c - 使用 strcpy 和指向字符的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40796364/

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