多少空间使用数组变量

gir*_*kks -7 c arrays avr

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

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

在我的程序的一部分,有些地方我需要的数组int a[13];

或者代替int a[13]; anint a[3];和整数类型,即int i.

特别是我要求如果我需要13个整数数组或4个整数数组以及整数变量.

这是使用较少的内存

Sou*_*osh 5

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

例如,

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

整个数组将消耗(大小*sizeof单个元素),即在这种情况下5 * 4== 20个字节.

这与使用情况无关,即您实际计划使用多少元素.

FWIW,0大小/ 0长度阵列是非标准的.它是一个gcc特定用途扩展(在添加灵活的数组成员作为标准之前),支持0大小的数组,但你最好不回复它.