怎么“动态申请”“创建动态数组”?
请给出一个例子,介绍怎样怎样创建动态数组或者所谓的动态申请?有时候自己创建了一个很大的数组例如ARRAY[1000][1000],在WINDOWS下就不能执行,在ACM下...
请给出一个例子,介绍怎样怎样创建动态数组或者所谓的动态申请?有时候自己创建了一个很大的数组例如ARRAY[1000][1000],在WINDOWS下就不能执行,在ACM下更不行会溢出,怎么解决这个问题,据听说用动态数组就可以,但是不太会,请教大家!
展开
7个回答
展开全部
char ARRAY[1000][1000];这个是放到栈里,栈不够大就不行了,不需要自己释放。
char *Array = (char*)malloc(1000*1000*sizeof(char));就是动态申请了,申请用完后要用free array;这个是放到堆里的。如果申请很多会用到虚拟内存保存到硬盘里,你用
while(1)
{
Array = malloc(10000000);
}不释放就会听到硬盘响的很厉害
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。
//
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。
//
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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的语法没错吧?忘了,自己看看吧。
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的语法没错吧?忘了,自己看看吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c++的语法:
int *ARRAY = new[1000][1000];
就可以建立一个动态的数组
delete []ARRAY;
用了之后要释放空间;
-----------------------------------------------
c语法:
申请空间
char *Array = (char*)malloc(1000*1000*sizeof(char));
用完释放空间
free(*ARRAY);
int *ARRAY = new[1000][1000];
就可以建立一个动态的数组
delete []ARRAY;
用了之后要释放空间;
-----------------------------------------------
c语法:
申请空间
char *Array = (char*)malloc(1000*1000*sizeof(char));
用完释放空间
free(*ARRAY);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
"指针数组。用多少创建多少。不费内存,动态存储空间。"
真是牛*
真是牛*
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询