关于定义大数组的问题

cygzappo 2009-07-21 08:50:04
我想要定义一个1024*4096的二维数组,类型是unsigned char.我用的是win-tc编译器,无法定义这样的大数组,请问有什么Linux下的编译器可以定义这么大的数组,或者有什么其他方法可以定义的?这个数组是全局数组。使用C编程,所以不能使用vector
...全文
271 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
iverson_liu213 2009-09-18
  • 打赏
  • 举报
回复
UP
光宇广贞 2009-07-22
  • 打赏
  • 举报
回复
全局没问题……局部的话……一定超了啊…一般函数栈给的大小是有限度的……
赵4老师 2009-07-22
  • 打赏
  • 举报
回复
用文件来模拟
FILE *f;
unsigned char b='\0';
unsigned long x,y;
//创建一个长度为1024x4096字节的文件a102x4096.dat
f = fopen( "a1024x4096.dat", "wb" );
y=4095;x=1023;
fseek(f,y*1024L+x,SEEK_SET);
fwrite(&b,1,1,f);
fclose(f);
//打开文件a102x4096.dat准备读写
f = fopen( "a1024x4096.dat", "w+b" );
//当数组使用
b=a[x][y];对应fseek(f,y*1024L+x,SEEK_SET);fread(&b,1,1,f);
a[x][y]=b;对应fseek(f,y*1024L+x,SEEK_SET);fwrite(&b,1,1,f);
//程序退出时关闭
fclose(f);
//有必要的话删除a102x4096.dat
remove("a1024x4096.dat");
Nio96 2009-07-21
  • 打赏
  • 举报
回复
试试就知道了
发现心流 2009-07-21
  • 打赏
  • 举报
回复
全局的肯定没有问题吧
十八道胡同 2009-07-21
  • 打赏
  • 举报
回复
全局数组可以定义你这么大的
爱吃大南瓜 2009-07-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 alxrose 的回复:]
全局变量没问题,局部变量基本死翘翘
[/Quote]

全局变量定义大数组非常危险
爱吃大南瓜 2009-07-21
  • 打赏
  • 举报
回复
用动态分配 ,
这么大的数组存在栈里很快就会stack overflow
AlxRose 2009-07-21
  • 打赏
  • 举报
回复
全局变量没问题,局部变量基本死翘翘
wsmyaoquhuawei 2009-07-21
  • 打赏
  • 举报
回复
up
  • 打赏
  • 举报
回复
[Quote=引用楼主 cygzappo 的回复:]
我想要定义一个1024*4096的二维数组,类型是unsigned char.我用的是win-tc编译器,无法定义这样的大数组,请问有什么Linux下的编译器可以定义这么大的数组,或者有什么其他方法可以定义的?这个数组是全局数组。使用C编程,所以不能使用vector
[/Quote]
gcc
fice1989 2009-07-21
  • 打赏
  • 举报
回复
就是。。。
win-tc是给非计算机类学学小编程用的。。。
liao05050075 2009-07-21
  • 打赏
  • 举报
回复
别用win-tc..
用VC或linux的gcc应该要可以定义这么大的unsigned char

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧