多少空间使用数组变量

时间:2017-09-05 08:51:32

标签: c arrays avr

在c中,有多少内存消耗一个数组,那只是一个单独的数组  即,int a[0];或char a[0];

我希望在程序写在纸上时知道它,而不是在编译器上运行的程序 这里我不能使用sizeof函数,我的编译器是avrgcc,

在我的程序部分,我需要一个int a[13];数组

或代替int a[13]; an int a[3];以及另外的整数类型,即int i。

具体我要求 如果我需要13个整数数组或4个整数数组以及一个整数变量。

使用的内存较少

2 个答案:

答案 0 :(得分:5)

数组的大小是数组中每个元素大小的总和。

例如,

  • 如果数组大小为5
  • 数组元素(类型)大小为4个字节

整个数组将消耗(size * sizeof个别元素),即在这种情况下5 * 4 == 20个字节。

这与用法无关,即您实际计划使用的元素数量。

FWIW,0大小/ 0长度阵列是非标准的。 It's a gcc extension用于特定目的(在添加灵活数组成员之前作为标准),支持0大小的数组,但最好不要回复它。

答案 1 :(得分:0)

int(整数)类型变量的大小为2个字节,char的长度为1个字节。在数组中,数组的大小乘以变量的大小根据其类型将给出数组的大小。 你也可以使用sizeof。