怎么“动态申请”“创建动态数组”?
发布网友
发布时间:2022-05-14 08:35
我来回答
共5个回答
热心网友
时间:2023-10-11 16:43
char ARRAY[1000][1000];这个是放到栈里,栈不够大就不行了,不需要自己释放。
char *Array = (char*)malloc(1000*1000*sizeof(char));就是动态申请了,申请用完后要用free array;这个是放到堆里的。如果申请很多会用到虚拟内存保存到硬盘里,你用
while(1)
{
Array = malloc(10000000);
}不释放就会听到硬盘响的很厉害
热心网友
时间:2023-10-11 16:43
动态数组 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。
//
热心网友
时间:2023-10-11 16:44
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的语法没错吧?忘了,自己看看吧。
热心网友
时间:2023-10-11 16:44
c++的语法:
int *ARRAY = new[1000][1000];
就可以建立一个动态的数组
delete []ARRAY;
用了之后要释放空间;
-----------------------------------------------
c语法:
申请空间
char *Array = (char*)malloc(1000*1000*sizeof(char));
用完释放空间
free(*ARRAY);
热心网友
时间:2023-10-11 16:45
"指针数组。用多少创建多少。不费内存,动态存储空间。"
真是牛*