假设我们有一个大小为 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/