C++ 一个程序申请的内存多大

来源:百度知道 编辑:UC知道 时间:2024/06/06 05:28:31
我要写一个小程序,但是变量申请的字节数很大,变量也较多,只有一个变量时:我发现最大只能定义 char a[1034000] 而有多个变量时,我发现变得更复杂,如果各char型变量X[xxx]相加之和小于1034000 那么程序不会报错,而如果大于1034000,则会因情况不同,而可能能够执行或者不会执行。
有那位高手能就这个定义的最大字节数问题说一下吗 不胜感激!!

我很希望很实现这种大的char类型定义,但程序无法实现 请问我该如何修改?
int main(void)
{
struct AA
{
char a[1000000];
}aa[100000];

X();
X();

}

如果能够实现,请帮助修改一下,如果不能实现,请讲解一下不能实现的原因,我觉得应该是能够实现的,因为很多大型程序要占用那么多的内存,定义的那些变量应该也很大。
分不多,全部送上!

1、定义struct AA { char a[1000000]; }aa[100000] 肯定是不可取的。
学过汇编语言就知道,这样即便编译可以通过,也会因为程序太庞大而不 能执行。

2、解决方法:
(1)用动态分配内存的方法,需要多少,申请多少
如:char *p = malloc( 10000 ) ...
如果不够还可以追加。如果内存不够的话,Windows系统会自动用虚拟内存的。
(2)若程序真的有这么大的数据量,那就采用外部文件,比如:数据库。

不知道你为何要定义如此大的变量,在程序上是不可取的.
建议你使用外部文件的方式处理你的文本数据.
就是将数据存储在外部文件中,需要处理时,通过读取文件操作一点一点处理,效率高,占用内存少.从新设计程序吧,那样的结构设计出来是没有意义的.

应该在很多机器上都不能实现.因为char[1034000]需要调用 1034000个字节空间,这足足有1G啊!!!