初始化并打印const char指针

时间:2018-05-27 13:01:27

标签: c pointers

我收到了这段代码:

const char *newLine = "\n";
printf('Content: %c\n', *newLine);

现在发生的是内存错误。

为什么会这样?

1 个答案:

答案 0 :(得分:1)

代码因内存错误(分段错误)而崩溃,因为printf期望以空字符结尾的字符串作为第一个参数(即指向以零字节结尾的某些字符的有效地址),但是您正在通过一个(有效随机)整数,它不是一个有效的地址(除非你非常非常幸运: - )。

正如人们评论的那样,使用双引号传递编译器在某处分配的实际字符串:

const char *newLine = "\n";
printf("Content: %c\n", *newLine);