new的作用

用来初始化一段堆内存,new的返回值为该段堆内存的首地址,有且仅有一个*,int*a为(int*)(a),int*代表变量指向内存为int的地址,所以a代表的是指向内存为int的地址的变量

    int **a = new int[5][6];//不可执行
    int **a = new int*[5];//a指向5个int*
    int (*a)[6] = new int[5][6];    
 int *b = new int[5];
 
  delete a;
  delete []a;
 
    //char是一个字节,int4个字节,地址变量8个字节
    char **a = new char*[5];
    for (int i = 0; i < 5; i++)
    {
        cout << a[i] <<endl;
    }
   
    cout << sizeof(char*[5])<<endl;//40,5个char*
    cout << sizeof(char[5])<<endl;//5
    cout << sizeof(char)<<endl;//1
    cout << sizeof(char*)<<endl;//8
    cout << sizeof(a)<<endl;//8
    cout << sizeof(*a)<<endl;//8
    cout << sizeof(**a)<<endl;//1
    delete []a;
 
 
new和delete的重点在于类对象的申请和释放,调用构造函数进行初始化,调用析构函数进行释放
posted @ 2023-01-20 15:56  纸包鱼  阅读(69)  评论(0)    收藏  举报