• [C++] NEW Advanced Usage


    NEW Advanced Usage

    将分配的内存限定在特定的一块区域

    #include<iostream>
    #include<new>
    const int buf(512);
    int N(5);
    char buffer[buf] = {0};
    
    using namespace std;
    void main()
    {
        double *p1, *p2;
    
        std::cout << "
    
    
    ";
        p1 = new double[N];
        p2 = new (buffer)double[N];
        for (int i = 0; i < N; i++)
        {
                p1[i] = p2[i] = i + 10.8;
                std::cout << "p1===   " << &p1[i] << "  " << p1[i];
                std::cout << "   p2===   " << &p2[i] << "  " << p2[i] << std::endl;
        }
    
        double *p3, *p4;
        std::cout << "
    
    
    ";
        p3 = new double[N];
        p4 = new (buffer)double[N];
        
        for (int i = 0; i < N; i++)
        {
            p3[i] = p4[i] = i + 10.8 ;
            std::cout << "p3===   " << &p3[i] << "  " << p3[i];
            std::cout << "   p4===   " << &p4[i] << "  " << p4[i] << std::endl;
        }
    
        double *p5, *p6;
        std::cout << "
    
    
    ";
        p5 = new double[N];
        p6 = new (buffer)double[N];
    
        for (int i = 0; i < N; i++)
        {
            p6[i] = p5[i] = i + 10.8;
            std::cout << "p5===   " << &p5[i] << "  " << p5[i];
            std::cout << "   p6===   " << &p6[i] << "  " << p6[i] << std::endl;
        }
        std::cin.get();
    }
    p2 p4 p6 的地址保持一样!!!

  • 相关阅读:
    restapi(6)- do it the functional way, 重温函数式编程
    JS模块化
    socket.io websocket
    CSS 文字换行
    webpack初识
    升级nodejs至最新
    JavaScript Promise迷你书(中文版)
    时间格式化
    npm yarn
    深入浅出MongoDB应用实战开发
  • 原文地址:https://www.cnblogs.com/tianhangzhang/p/4979416.html
Copyright © 2020-2023  润新知