怎么“动态申请”“创建动态数组”?

请给出一个例子,介绍怎样怎样创建动态数组或者所谓的动态申请?有时候自己创建了一个很大的数组例如ARRAY[1000][1000],在WINDOWS下就不能执行,在ACM下... 请给出一个例子,介绍怎样怎样创建动态数组或者所谓的动态申请?有时候自己创建了一个很大的数组例如ARRAY[1000][1000],在WINDOWS下就不能执行,在ACM下更不行会溢出,怎么解决这个问题,据听说用动态数组就可以,但是不太会,请教大家! 展开
 我来答
高速路上飙单车
2008-12-14 · TA获得超过640个赞
知道小有建树答主
回答量:78
采纳率:0%
帮助的人:0
展开全部
char ARRAY[1000][1000];这个是放到栈里,栈不够大就不行了,不需要自己释放。
char *Array = (char*)malloc(1000*1000*sizeof(char));就是动态申请了,申请用完后要用free array;这个是放到堆里的。如果申请很多会用到虚拟内存保存到硬盘里,你用
while(1)
{
Array = malloc(10000000);
}不释放就会听到硬盘响的很厉害
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-08-08
展开全部
动态数组 new malloc realloc等;
vector,把用户的输入都 push_back 就行了。
参考如下:
假设是char型
char*p,*q;;
int a=1;
p=(char*)malloc(a);
while
{
a++;
q=p;
p=(char*)realloc(q,a);//通过realloc扩大p的空间,并把新的地址赋值给p。;新数组大小加1
if(结束条件)
break;
](char*)realloc(q,20);//A行,通过realloc扩大p的空间,并把新的地址赋值给p。
//
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
seahorse47
2008-12-14 · TA获得超过182个赞
知道小有建树答主
回答量:62
采纳率:0%
帮助的人:112万
展开全部
ARRAY[1000][1000]失败是栈不够大的原因。如果不修改栈大小,用动态数组,应该这样用:

int** array;//(int 可以换成其它的类型)
array = (int**)malloc(1000*sizeof(int*));
for(int i=0;i<1000;i++)
    array[i] = (int*)malloc(1000*sizeof(int));
//这里使用array,使用方法跟你的那个ARRAY完全一样。
for(int i=0;i<1000;i++)
    free(array[i]);
free(array);

//free的语法没错吧?忘了,自己看看吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xietianbo
2008-12-23 · TA获得超过1235个赞
知道答主
回答量:215
采纳率:0%
帮助的人:169万
展开全部
c++的语法:
int *ARRAY = new[1000][1000];
就可以建立一个动态的数组

delete []ARRAY;
用了之后要释放空间;
-----------------------------------------------
c语法:
申请空间
char *Array = (char*)malloc(1000*1000*sizeof(char));
用完释放空间
free(*ARRAY);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ivaniren
2008-12-14 · TA获得超过1471个赞
知道小有建树答主
回答量:1088
采纳率:0%
帮助的人:0
展开全部
"指针数组。用多少创建多少。不费内存,动态存储空间。"
真是牛*
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式