社区
C语言
帖子详情
关于定义大数组的问题
cygzappo
2009-07-21 08:50:04
我想要定义一个1024*4096的二维数组,类型是unsigned char.我用的是win-tc编译器,无法定义这样的大数组,请问有什么Linux下的编译器可以定义这么大的数组,或者有什么其他方法可以定义的?这个数组是全局数组。使用C编程,所以不能使用vector
...全文
313
13
打赏
收藏
关于定义大数组的问题
我想要定义一个1024*4096的二维数组,类型是unsigned char.我用的是win-tc编译器,无法定义这样的大数组,请问有什么Linux下的编译器可以定义这么大的数组,或者有什么其他方法可以定义的?这个数组是全局数组。使用C编程,所以不能使用vector
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
全球全网精准引流软件SaaS平台
2009-07-21
打赏
举报
回复
[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
在函数中
定义
大
数组
出现栈溢出的
问题
本文讨论了在C++中函数中
定义
大
数组
导致栈溢出的
问题
。栈和堆的区别在于数据结构和内存分配方式,栈空间有限且固定,而堆更灵活但效率较低。栈溢出的解决方案包括将
数组
改为堆变量或调整系统栈限制。建议尽量避免在栈上分配大量内存,以防止溢出
问题
。
C语言函数中
定义
大
数组
耗尽堆栈的
问题
文章记录了一次解决C程序段错误的经历,通过调整
数组
定义
位置解决了内存溢出
问题
,并介绍了C语言中堆栈、堆及动态内存分配的基本概念。
关于在函数中
定义
大
数组
(局部变量)所导致的
问题
本文探讨了在函数内部
定义
大型
数组
导致栈溢出的
问题
,并对比了将其作为全局变量后的表现差异。通过实例说明了不同存储区域的特点及使用注意事项。
F1611大
数组
定义
,不能正常运行的
问题
本文介绍了当使用MSP F1611微控制器时,如何解决因RAM初始化时间过长导致的程序复位
问题
。提供了三种解决方案:使用__noinit_关键字、修改启动文件以禁用或延长看门狗定时器(WDT)的默认时间,以及配置项目链接选项。同时,还说明了使用汇编语言编程可以避免此类
问题
。
大
数组
要
定义
在main函数外部
本文深入探讨了在C语言中,为何大
数组
应
定义
在主函数外部而非内部的原因。全局变量在静态存储区分配内存,而局部变量在栈内分配。在main函数内
定义
大
数组
会占用大量栈空间,可能导致栈溢出。因此,为避免此类
问题
,大
数组
应置于main函数外。
C语言
70,039
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章