zoukankan      html  css  js  c++  java
  • 动态分配内存--new、delete

    C++中使用new/delete用来动态分配、回收内存空间。

    #include<iostream>
    using namespace std;
    int main()
        {
            int * pi = new int;
            cout << (void*)pi << endl;
            *pi = 1234;
            cout << *pi << endl;
            delete pi;//删除pi的目标,pi是局部变量。释放内存
            cout << (void*)pi << endl;//变成野指针,但pi指向的地址并没有变化
            pi = NULL;//置空。
    
            ///////初始化
    
            pi = new int(100);
            cout << *pi << endl;
            delete pi;
            pi = NULL;
            
            ///////分配数组,无初值,用数组方式new的,必须以
            //数组方式(delete [])释放
            int i=0,j=0;
            pi = new int [10];
            for ( i = 0; i < 10 ; i++)
                pi[i] = i+1;
            for ( i = 0; i < 10 ; i++)
                cout << pi[i] << endl;
            cout << endl;
            delete [] pi;
            pi = NULL;
    
            ///初始化数组
    
            pi = new int[3]();//初始值为0
            for ( j = 0; j < 3; j++)
                cout << pi[j] << endl;
            delete [] pi;
            pi = NULL;
    
            //////////动态创建二维数组/////////
    
            int (*pa)[4] = new int [3][4]();//初始值为0,指针数组
            for (i = 0; i < 3; i++)
                for(j = 0; j < 4; j++)
                    cout << pa[i][j] << endl;
                delete [] pa;
                pa = NULL;
    
            return 0;}
  • 相关阅读:
    访问控制与封装
    构造函数
    定义抽象数据类型
    函数基础
    参数传递
    路径中 斜杠/和反斜杠 的区别
    【git】Github上面的开源代码怎么在本地编译运行
    IDEA及IDEA汉化包
    Java设计模式——工厂设计模式
    "/"程序中的服务器错误
  • 原文地址:https://www.cnblogs.com/day-up/p/5114320.html
Copyright © 2011-2022 走看看