在编程竞赛中,由于题目内存的限制,在一些卡内存的题目中空间花销计算显得尤为重要。
众所周知,查询数组空间可以用sizeof(),比如
sizeof(char) = 1;
令 :char A[1024];
则sizeof(A) = 1024;
我在百度 “数组空间计算” 的时候,答案基本上就是上述,但这似乎还是不够的。
上面的结果1 和 1024什么含义那?1B?1b?1M?
其实上面1 和 1024的单位是字节,也就是b。
下面说一下单位换算:
1b = 8B(比特);
1kb = 1024b;
1M = 1024kb;
那么我说一下上面的1024的空间开销(换算成M):1024b = 1 kb = 0.001 M(左右,A的空间)
1024*1024b的话就是1M。
如果数组为 int A[1024*1024] ,内存开销为 4M 左右。