C,一个数组需要的内存空间是否比它的元素更多?

标签 c arrays memory-management

假设我们有一个大小为 40 的字符数组,

char buffer[40];

其次,假设这个数组已满,有人向其中写入了 40 个字符。

因此,我们可以说这个数组的元素占用 40 个字节,因为每个字符是 1 个字节。

我的问题是: 我们的数组实际上在内存中占用了多少空间?它会占用 40 字节或更多空间吗?是否需要额外的位来将此数组标识为 char 类型,是否需要额外的位来允许空终止?如果是这样,可能是我们需要更多类似 ~42 字节的东西来将这个数组存储在内存中。

因此,我想知道我是否可以可靠地将 40 个字符的数组放入分配了 40 个字节的内存空间中。

最佳答案

与 Java 或 C# 等语言不同,C 在运行时不存储任何类型元信息。因此,char[40] 恰好需要 40 个字节。

关于C,一个数组需要的内存空间是否比它的元素更多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43019425/

相关文章:

arrays - 如何读入csv文件以在bash脚本中排列

c - 通过串行端口发送文件

c - 将结构参数的名称作为参数发送

c - 如何组合循环或如何将多个循环实现到 glib 主循环中?

arrays - 为什么matlab有基于1的索引

将字符缓冲区连接成字符串

java - 设置antlr ide和antlr包

java - 数组列表错误

ios - UIBezierPath 内存问题

java - Java 的大表