社区
C语言
帖子详情
关于定义大数组的问题
cygzappo
2009-07-21 08:50:04
我想要定义一个1024*4096的二维数组,类型是unsigned char.我用的是win-tc编译器,无法定义这样的大数组,请问有什么Linux下的编译器可以定义这么大的数组,或者有什么其他方法可以定义的?这个数组是全局数组。使用C编程,所以不能使用vector
...全文
271
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
关于在函数中
定义
大
数组
(局部变量)所导致的
问题
函数中
定义
大
数组
(局部变量)的
问题
今天调程序时(我用的是DSP处理器),在函数内部
定义
了两个较大的
数组
:float a[300],float[300],编译无错也无警告, 但运行时程序会出错,像是跑飞的样子,后来我将这两个大
数组
放到函数外(全局变量),则就正常了。 后来我百度“函数中
定义
大
数组
”,说是这造成了栈溢出,还建议不要在函数中使用较的
数组
。 一个由c/C++编译的程序占
c++中
定义
大
数组
出错(提示未知错误)解决方法
c++中
定义
大
数组
,会出错,提示未知错误 可以将大
数组
定义
在程序外面,作为全局变量 例如以下代码会出错: #include<iostream> #include<cmath> using namespace std; int main(){ bool p[4000000]; return 0; } 当把
数组
定义
在程序外面,作为全局变量时,不会出错,下面代码不会出错: ...
定义
一个大
数组
的方法
定义
一个大
数组
的方法: 在网易笔试题中需要
定义
一个int型的1000000*1000000
数组
,这个
数组
已经超过了栈的大小,无法在栈中直接
定义
问题
描述: 在网易笔试题中需要
定义
一个int型的1000000*1000000
数组
int a[1000000][1000000]; //会报错
数组
太大 解决方案: 利用malloc
定义
二维
数组
int **p = (int**)malloc(sizeof(int) * 1000000); for (int i = 0; i < 1000000
大
数组
要
定义
在main函数外部
大
数组
要
定义
在主函数外部的原因 全局变量在静态存储区内分配内存,而局部变量是在栈内分配内存空间的。C语言编写的程序会在运行期间创建一个栈堆段,用来保存函数的调用关系和局部变量。而在main函数内部
定义
大
数组
相当于在站内需要一个很大的空间,会造成栈的溢出。 因此,当我们需要
定义
一个极大的
数组
时,最好在mian 函数外部
定义
这个大
数组
。 ...
c语言在函数内部
定义
大
数组
,c语言中能不能
定义
函数
数组
函数不可以
定义
为
数组
,可以用函数指针来操作。1.函数指针的
数组
定义
方法:返回值类型(*指针变量名[Number])(形参列表)。例如:doubleadd(doublea,doubleb){};doublesub(doublea,doubleb){};doublemul(doublea,doubleb){};doublediv1(doublea,doubleb){};double(*oper_fun...
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章