c - 带有 char 指针的字符串

标签 c string pointers

当我有一个未初始化的指针时,我无法将其放入其中,因为没有内存分配位置!

当我有一个指向 char 类型变量的指针并且我想将其与 %s 一起放入时,程序允许我输入两个字符(2 个字节),超出后会打印错误。

我的问题是,为什么 char 只能容纳一个字节,却可以放入两个字母?难道程序连两个字母都不应该落下吗?

最佳答案

这可能与对齐有关。如果 char 变量后面有一个多字节类型,则中间可能有少量未使用的字节,但您不能依赖于此,因为它显然是未定义的。

我建议使用 valgrind 来检查内存问题,而不是依赖于观察。

关于c - 带有 char 指针的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24903197/

相关文章:

javascript - 如何通过 Typescript 中的迭代处理数组字符串

c - 从 void 指针传输值

c - 从 scanf() 读取源字符串后,字符串未被复制

c - 从 txt 文件中保存、查找和删除结构

c++ - 6 智能感知 : no suitable conversion function from "std::string" to "int" exists

c - 想为银行制作 c 程序应用程序

string - R:将数据框行转换为字符向量

c# - 当结构包含 bool 时如何将 GCHandle 分配给结构

有条件的跳跃或移动取决于未初始化的值

ios - 如何从 .c 文件向 swift 类发送通知或委托(delegate)回调?