zoukankan      html  css  js  c++  java
  • 动态内存/类中申请动态内存

    c++中用new申请动态内存,delete  清空内存

    new申请成功返回正确的指针,不成功返回NULL;

     类  中申请动态空间  需要在  构造函数  中申请、创建需要的数据结构

        并且在析构函数中删除申请的空间

    简单的new

    //new 动态申请 数组  和 delete 所申请的空间
    // new 操作失败时  返回NULL  否则返回首单元地址
    #include <bits/stdc++.h>
    using namespace std;
    
    int main()
    {
        int *p,*q;
        p=new int (100);
        q=new int [10];
        if(q==NULL){
            cout<<"can't allocate more memory."<<endl;
            exit(1);
        }
        for(int i=0;i<10;i++) *(q+i)=i;
        delete p;
        delete []q;   //delete 清空了new申请的空间
        int a=10;
        p=&a;
        cout<<*p<<endl; //输出的是a 的值
        return 0;
    }
    

      在类中 动态创建二维数组

    一个指向指针的指针,指向一个指针数组,指针数组指向各个元素

    string**s = new string*[10];
            for(int i=0;i<10;i++)
                s[i] =new string[10];
    

      

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 class matrix
     4 {
     5 public:
     6     matrix(string na="mark",string i="0000000"){
     7         one = new string*[10];
     8         for(int i=0;i<10;i++)
     9             one[i] =new string[10];
    10 
    11         if(one==NULL){cout<<"can't allocate more memory"<<endl;exit(1);}
    12 
    13         for(int i=1;i<10;i++)
    14             for(int j=0;j<10;j++){
    15                 one[i][j]=i%2?"1":"0";
    16             }
    17         cout<<"allocate is finished"<<endl;
    18     }
    19     ~matrix(){
    20         for(int i=0;i<10;i++){
    21             for(int j=0;j<10;j++)
    22                 cout<<one[i][j]<<" ";
    23             cout<<endl;
    24         }
    25         cout<<"delete is finished"<<endl;
    26     }
    27 private:
    28     string **one;
    29 };
    30 
    31 int main()
    32 {
    33     matrix a;
    34     return 0;
    35 }
    View Code
    落霞与孤鹜齐飞,秋水共长天一色
  • 相关阅读:
    分治策略
    uva 11424
    lightoj 1214
    lightoj 1282 && uva 11029
    lightoj 1341
    zoj 2369 Two Cylinders
    几种素数筛法
    lightoj 1245
    hdoj 1299 Diophantus of Alexandria
    求前n项正整数的倒数和
  • 原文地址:https://www.cnblogs.com/star-and-me/p/6672033.html
Copyright © 2011-2022 走看看