1. 变量的分类:
类成员变量,全局变量,局部变量, 参数变量,静态变量等;
不同类型的变量的大小容量有限。
2. 变量大小容量:
容量大小从小到大:
栈≤全局数据≤堆≤文件≤硬盘≤磁盘阵列≤云存储
当程序需要使用比如2GB~1TB左右的存储时,最简单的办法恐怕得是用文件读写模拟内存读写了吧。windows参考_fseeki64函数,linux参考fseeko64函数。
因为你无论怎么开全局数组,栈的大小是被编译器限制了的,所以最好还是用new去使用堆内存生成动态数组。
变量选择内存位置需要注意:栈大小<全局变量<堆(malloc/free, new/delete)
另外,如果要计算中文出现的频率,需要每个中文都先读到内存里吗?个人的建议是每次读出一个加入申请的缓存里,若读到已经在缓存里存在的不需要在放到缓存里而是直接让计数加1即可,这样如果中文词出现的频率较大时,可以减少很多的缓存,这样也不需要申请太大的缓存,可以在堆上申请空间,因为可以动态申请。保证内存不浪费。