当我有一个未初始化的指针时,我无法将其放入其中,因为没有内存分配位置!
当我有一个指向 char 类型变量的指针并且我想将其与 %s 一起放入时,程序允许我输入两个字符(2 个字节),超出后会打印错误。
我的问题是,为什么 char 只能容纳一个字节,却可以放入两个字母?难道程序连两个字母都不应该落下吗?
最佳答案
这可能与对齐有关。如果 char 变量后面有一个多字节类型,则中间可能有少量未使用的字节,但您不能依赖于此,因为它显然是未定义的。
我建议使用 valgrind
来检查内存问题,而不是依赖于观察。
关于c - 带有 char 指针的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24903197/