大规模结构体初始化问题
各位大侠:
1. 本人定义了一个结构体,里面放了一个长度为100的数组。现在想把这个数组的每一个元素都初始化为1000,该怎么办?
形如:
struct a
{
int c[100];
};
struct a b[50][6];
请不要建议把b的300个元素逐一初始化。
2. 上述定义中若改为b[50][7]就会有错误提示(TC)中,是否说明C语言有最大容量限制,我的内存有2G,b应该可以定义得很大才对?
3. 上述程序是放在main外面的,如果放在main里面就会有错误提示,不知为何?
[解决办法]
1 memset
2 栈空间不够,不关内存事,要看编译器支持。
可以用malloc动态申请内存就不受这个限制了
3 提示什么错误
[解决办法]
TC是DOS下16位的编译器,那时,程序访问的内存被分成了64K大小的一段一段,所以问题可能跟你的编译模式设置有关,你可以试着改成大模式(Huge Mode)试试看。
注意:50 * 7 * 100 * 2 = 70000字节,超过了64K。