C++空间的创建和释放和动态数组_byseyOrd
创建空间
类型A *varname = (类型A *)malloc(字节数)
释放空间
free(管理某个地址的指针)
动态数组可以使用new的方式
c++要求定义数组时,必须明确给定数组的大小,要不然编译通不过
如: int Array[5];正确
int i=5;
int Array[i]; 错误 因为在编译阶段,编译器并不知道 i 的值是多
所以,new 动态定义数组来解决定义长度未知的数组。
因为new 就是用来动态开辟空间的,所以当然可以用来开辟一个数组空间(这个是一维的)
这样,下面的语句:
int size=50;
int *p=new int[size]; 是正确的
动态数组也可以使用空间的创建方式
int len; int * p; printf("请先确定您将要输入数组元素的个数:\n"); scanf("%d", &len); while(char ch = getchar() != '\n') //此句的作用是过滤用户的非法输入 continue;//此句的实现其作用的原理是,用户输入一个整数后掉下空格则是结束了len的输入,若没有回车进入下一步而是继续输入字符,则getchar()函数将又输入的每一个字符不停地给变量ch,直到遇到换行符为止。 p = (int *)malloc(8*len);//这就是动态数组的定义,动态数组是以指针实现的。其格式不是传统数组那样必须要有中括号[].这是动态数组与静态数组的一个区别。 malin(p, len); malline(p, len); malout(p, len); free(p);//释放动态空间
浙公网安备 33010602011771号