初始化并打印const char指针

k33n

我得到以下代码:

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

现在发生的是内存错误。

为什么会这样呢?

橡子

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

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章