zoukankan      html  css  js  c++  java
  • c++中new分配动态数组

    变长一维数组  
      这里说的变长数组是指在编译时不能确定数组长度,程序在运行时需要动态分配内存空间的数组。实现变长数组最简单的是变长一维数组,你可以这样做: 

    //文件名:   array01.cpp  
    
    #include<iostream>  
    
    using   namespace   std;  
    
    int   main()  
    
    {  
    
    	int   len;  
    
    	cin>>len;  
    
    	//用指针p指向new动态分配的长度为len*sizeof(int)的内存空间  
    
    	int   *p=new   int[len];  
    
    	...........  
    
    		delete[]   p;  
    
    	return   0;  
    
    }  
    
    

      注意int   *p=new   int[len];

      这一句,你不能这样做:  
      int   p[len];  
      C++编译器会报错说len的大小不能确定,因为用这种形式声明数组,数组的大小需要在编译时确定。而且这样也不行:  
      int   p[]=new   int[len];  
      编译器会说不能把int*型转化为int[]型,因为用new开辟了一段内存空间后会返回这段内存的首地址,所以要把这个地址赋给一个指针,所以要用int   *p=new   int[len];  
      array01.cpp实现了一个变长的一维数组,但是要养成一个好习惯,就是注意要注销指针p,使程序释放用new开辟的内存空间。  

  • 相关阅读:
    hash
    C#执行Sql事务处理
    数据库的锁表
    页面的刷新 和图片的替换
    单点登录 Webservice
    js 动态调用js文件
    .net生成EXCEL
    JS : 连续滚动
    引用指定类型的对象
    对象序列化为字符串
  • 原文地址:https://www.cnblogs.com/hdk1993/p/4652789.html
Copyright © 2011-2022 走看看