• 2005-09-18

    布局 new 操作符 - [C&C++]

    布局操作符 new 能够让你使用指定的内存快

    1.用法,include new头文件   #include<new>

      struct  carre

    {

         char  name[20];

         int age;

    }

       char buffer[50];

      char buffer2[500];

      carre *p1=new  (buffer)  carre;

      int *p2=new (buffer2) int[20];

    此处,p1 和 p2 分别从 buffer 和 buffer2 中分配空间给结构carre 和 int 数组.

    注意记住如果从哪儿分配的空间,如果这块空间是静态的如上面的那样,那么就不需要使用delete 来释放p1 和 p2 .但是那快空间本身是动态分配的话就需要使用delete

    2. 用new 布局操作分配时都是从最开始地址分配的.如下:

      int *p3=new (buffer) int[20];

    此时p3的地址空间和p2的地址空间是一样的.不过可以通过改变初始的地址来改变分配空间地址 如:

     int *p4=new (buffer+20*sizeof(int)) int[20];

    此时p4的地址就和上面的不重叠了.

    分享到:

    历史上的今天:

    中秋节 2005-09-18