seyOrd

导航

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);//释放动态空间

 

posted on 2020-04-18 14:17  seyOrd  阅读(579)  评论(0)    收藏  举报