我有那个代码:
#include<stdio.h>
int main()
{
char *str = "aaaaaaaa";
char *stt = "bbbbbbbb";
*str = *stt;
printf("%s\n", str);
return 0;
}
它给我一个错误: 访问违规写入位置, 有人可以向我解释为什么以及如何克服这个问题吗?
最佳答案
您只分配了第一个字符,您不应该分配第一个字符,因为字符串文字是不可变的。
只需使用 str = stt;
来分配指针。
顺便说一句,因为它们不应该被改变,你最好使用 const
限定类型,如
char const *str = "aaaaaaaa";
关于c 将字符串指针分配给其他字符串指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20455694/