gpt4 book ai didi

使用指针将一个字符串复制到另一个字符串会产生垃圾值,为什么?

转载 作者:行者123 更新时间:2023-11-30 15:21:32 26 4
gpt4 key购买 nike

如果采用数组,那就没问题了,但当我使用 *str1 和 str2 时,它不起作用

#include <stdio.h> 

void copystr(char* ,char*);

int main()
{
char *str1="xxx";
char *str2= "yyy";

copystr(str1, str2);
printf("\n %s",str2);
}
void copystr(char *dest,char *src)
{
while(*src!='\0')
*dest++=*src++;
*dest='\0';
return;
}

最佳答案

char *str = "some string"

这里 str 是一个指向常量内存的指针,该内存无法编辑并导致未定义的行为。

但是如果你声明像

char str2[] = "some string"

现在上面的str2指向一个不是常量并且可以改变的内存。这样就可以了。

这里有更多解释: char *array and char array[]

关于使用指针将一个字符串复制到另一个字符串会产生垃圾值,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29547580/

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