我想使用数组而不是连续索引。
int arr[30];
并使用
arr[1]=x;
arr[2]=y;
arr[30]=z;
然后 arr [3] ~arr [29] 未使用,消耗不必要的内存空间。
有没有为arr [3] ~arr [29]指定内存的方法?
答案 0 :(得分:1)
C提供的内置数组不会执行您要求的内容。
您可以编写用于管理某些数据结构的代码,例如哈希表,但编译器不会为您执行此操作。
此外,对于记录,由于您将arr
声明为长度为30,因此arr[30]=z
是无效操作。指数从零开始,因此只有0-29有效。
答案 1 :(得分:0)
如果您有以下语句,则确定内存分配量:
int arr[30];
该语句基本上指示运行时为30个整数获取连续内存。如果您担心内存,请在声明时减小数组的大小或使用链表。