c - 用 calloc 创建的以空字符结尾的字符串?
问题描述
我想使用 calloc 为字符串分配内存,我知道 calloc 用 0 填充整个分配的内存,但我还发现它们在某些情况下与 \0 不同。整个讨论对于新手(比如我自己)来说有点令人困惑,所以我想知道是否有人可以给我最终答案,如果我使用 alloc 来初始化字符串,我是否必须手动将最后一个字符设置为“\0”或不?
解决方案
0
填充分配的内存的整数值和与整数值相同的calloc
文字字符之间没有区别。'\0'
0
因此,如果您将最多字符写入分配给n-1
的字符的内存块,您将始终拥有一个有效的以 0 结尾的字符串。n
calloc
推荐阅读
- javascript - Facebook SDK 未初始化
- mysql - MySQL:在某些条件下更新表
- android - Android Build 因工件而失败 - 缺少依赖项
- javascript - 无法计算异步/等待和承诺工作
- regex - 使用正则表达式提取系列中的最后一个日期
- javascript - 通过 zapier 代码发布到 API 并收到此错误
- javascript - 为什么我的 y 变量在 6 处停止?
- java - 如何在启动代理时强制 Jenkins 2.107.2 使用 java-1.8.0?
- sql-server - 如何在 SQL Server 中使用 between 运算符?
- java - JMenu 反复显示 showMessageDialog