首页 > 编程语言 > 详细

[C++] NEW Advanced Usage

时间:2015-11-19 23:53:38      阅读:265      评论:0      收藏:0      [点我收藏+]

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 << "\n\n\n";
    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 << "\n\n\n";
    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 << "\n\n\n";
    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 的地址保持一样!!!

技术分享

技术分享

[C++] NEW Advanced Usage

原文:http://www.cnblogs.com/tianhangzhang/p/4979416.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!