c - 为什么 printf 适用于未终止的字符串

标签 c

我想知道 printf() 如何确定何时停止打印字符串,即使我没有在字符串末尾放置终止符?我通过 malloc 做了一个 10 字节内存的实验,并在其中正好放了 10 个字符,不知何故,printf 仍然可以打印出这些字符而不会超出范围,为什么?

最佳答案

字符串后面的字符之一很可能是 NULL,因此 printf 停在那里,此外,在您 malloced 的内存之后不为 NULL 的字符可能不是可打印字符,因此您不会在终端。

关于c - 为什么 printf 适用于未终止的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4999901/

相关文章:

c++ - 宏 "#define DPRINTF(...)"是什么意思?

java - Android 上的 JNI,如何将 int 从 c 传递到 java

c - strptime 如何处理它读取/转换的信息?

python - 如何使用正确的 dll 文件在 Cython C 扩展中启用第 3 方 C 库?

c - 如何在不使用 C 中的 malloc 的情况下跟踪和排序指针?

c - 这个并行流可以工作吗?

c - 出现一个额外的输入

c - 预览二维数组 8x8 在 c 中不起作用

c++ - 为什么我需要将 lib 文件链接到我的项目?

c - 由于 strcpy() 导致的段错误