zoukankan      html  css  js  c++  java
  • c++学习之动态分配内存

    对于不确定数量的数据利用动态内存分配是非常好的

    对于指针使用new 和delete来实现动态的内存分配 和释放内存

    例如需要给整形分配内存和释放

    1 int ×p = new int;
    2 delete p;
    3 
    4 int *p = new int[10];
    5 delete[] p;

    对于指针的递增或递减是对一个指针类型的区域快进行移动而不是相邻的字节(除非长度刚好是1字节)

    #include <iostream>
    using namespace std;
    
    int main( int argc ,char **argv)
    {
        cout << " Please input a num: ";
        int num = 0;
        cin >> num;
    
        int *p = new int [num];
    
        for ( int i = 0 ; i < num ; ++i )
        {
            cout << "Enter number " << i <<":";
            cin >> *(p + i );
        }
    
        for(int i = 0 ; i < num ; ++i)
        {
            cout << *(p++) << " ";
        }
    
        cout << endl;
        p -= num;
        
        delete[] p;
    
    
        return 0;
    }

    该程序演示啦两种递增指针的方法;1,是通过偏移量变量 2是过通过运算符++它将指针包含的地址递增,让指针指向下一个元素

    因为指针是通过new制定分配内存的,所以在delete[]释放内存时,需要将p的改为原始的内存值。这里通过 -=将p重新指向原来的地址。

  • 相关阅读:
    软件策划书
    对开发团队的看法
    对敏捷开发的认识
    企业单位
    Pg数据库的基础安装
    Windows Server 任务计划执行.exe
    2020.04.08 重新开始
    20200211 Oracle监听启动异常
    20191225 医疗行业数据仓库
    20191224 多维数据库
  • 原文地址:https://www.cnblogs.com/miaorn/p/11945145.html
Copyright © 2011-2022 走看看