c 将字符串指针分配给其他字符串指针

标签 c string pointers

我有那个代码:

#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/

相关文章:

c - 无法检测到第二次机会异常?

Java 字符串用多字符定界符分割

string - Scala.Predef.String 类型的表达式不符合预期的 String 类型

javascript - 是否可以将光标轨迹添加到网页,而不是默认轨迹,而是图片或 gif?

c++ - 使用 union hack c++ 进行事件处理

C 和 gcc 错误数组下标超出数组边界

c - JSON (GLib) 序列化泄漏 GHashTable 的内存

c - 如何在 Linux 中调试 FUSE 文件系统崩溃

无法确定为什么指针变量不会在该程序中寻址字符串中的元素?

c++ - 链表复制构造函数的正确实现