
c语言问题。我想声明一个超大的二维数组——a[1000][1000],如何实现?
4个回答
展开全部
直接定义 int a[1000][1000];变量存放在栈里,这个要看编译的时候栈的大小。
如果栈空间不够大,可以通过new实现。
int **a = new int *[1000];
for(int i=0;i<1000;i++){
a[i] = new int[1000];
}
如果栈空间不够大,可以通过new实现。
int **a = new int *[1000];
for(int i=0;i<1000;i++){
a[i] = new int[1000];
}
展开全部
声明跟大小没有关系
直接 extern int a[1000][1000];
定义的话不要把这个数组放到{}里面
例如
int a[1000][1000];
int main()
{
.........
}
直接 extern int a[1000][1000];
定义的话不要把这个数组放到{}里面
例如
int a[1000][1000];
int main()
{
.........
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接定义 int a[1000][1000];变量存放在栈里,这个要看编译的时候栈的大小。
如果栈空间不够大,可以通过new实现。
int **a = new int *[1000];
for(int i=0;i<1000;i++){
a[i] = new int[1000];
}
如果栈空间不够大,可以通过new实现。
int **a = new int *[1000];
for(int i=0;i<1000;i++){
a[i] = new int[1000];
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不算大,直接写int a[1000][1000];就可以了。连2000个整数都不能处理的话还能称得上计算机?
对对对,我太大意了。动态申请内存,放在堆上去,那里很大,完全可以胜任你的需求。
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
#include "stdlib.h"
void main(void){
int **p,i,x;
if((p=(int **)malloc(sizeof(int *)*1000))==NULL){
printf("Apply for level 1 pointer memory failure...\n");
exit(0);
}
for(i=0;i<1000;i++)
if((*(p+i)=(int *)malloc(sizeof(int)*1000))==NULL){
printf("Application data memory failure...\n");
exit(0);
}
for(x=i=0;i<1000;i++){//这里操作对角线,看看是否成功.
p[i][i]=x++;
printf("%d ",p[i][i]);
}
delete []p;
printf("\n");
}
对对对,我太大意了。动态申请内存,放在堆上去,那里很大,完全可以胜任你的需求。
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
#include "stdlib.h"
void main(void){
int **p,i,x;
if((p=(int **)malloc(sizeof(int *)*1000))==NULL){
printf("Apply for level 1 pointer memory failure...\n");
exit(0);
}
for(i=0;i<1000;i++)
if((*(p+i)=(int *)malloc(sizeof(int)*1000))==NULL){
printf("Application data memory failure...\n");
exit(0);
}
for(x=i=0;i<1000;i++){//这里操作对角线,看看是否成功.
p[i][i]=x++;
printf("%d ",p[i][i]);
}
delete []p;
printf("\n");
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |