c - C 中指向指针的指针抛出段错误

标签 c pointers

这听起来可能很老派,但我仍然无法弄清楚为什么以下程序会抛出段错误。任何帮助都会很棒

#include <stdio.h>
pointer(char **x)
{
    printf ("Before %c",*x[0]);
    *x[0] = 'a';   // segmentation fault here!!
    printf ("After %c", *x[0]);
}
int main()
{
    char *x = "Hello";
    pointer(&x);
}

最佳答案

char *x = "你好";

此声明使其为只读。以您尝试的方式写入它是非法的。

参见 this了解更多信息

关于c - C 中指向指针的指针抛出段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25273184/

相关文章:

c - C中指针传递指针背后的逻辑

c - pty 手册页疑问/问题

C 没有可用于编程的内存 : unsafe to call malloc error

c - 如何链接包含在 C 中的库?

c++ - C++ 中的常量指针变量

c - 字符串文字在内存中的什么位置?栈/堆?

c - char * const 和 const char * 有什么区别?

c - igraph_vector_init_finally 和 igraph_vector_cumsum

c - PIC 18F452 生命周期定时器存储器

c - 在 c 中,sizeof()..[-1] 是什么意思