6.1 The deconstruction of the object's constructor and deconstruction objects occur before leaving the current area, not the array before braces: the compiler calls a function of Ning's Vec_new () to generate an array that is constructed with the Class Object object. Void * VEC_NEW (Void * Array, // Array start address size_t elem_size, // Each Class Object size INT ELEM_COUT, // array element VOID (* construcotr) (void *), // default constructor Function pointer void (* destructor) (void *, char) // default destructor's function pointer array is not the address of the name group, is 0. If 0, then the number of groups of rivers via the application's New operator , Passively configured in HEAP! During the process of VEC_NEW, the corresponding COKKIE is stored, the number of elements of the secondary block is stored. Note: It is the number of elements, not the entire array. So use Base Pointer Release Derived Pointer will cause memory leaks! Point Knowts [10]; ---> Vec_New (& Knots, Sizeof (Point), 10, & Point :: Point, 0) Point Knowts [10] = {Point (), Point 1, 2, 3)} -> Point :: Point (& Knots [0]); Point :: Point (& Knots [1]); VEC_NEW (&&ware (&&& Knowts 3 * Sizeof (Point), Sizeof (Point), 7, & Point :: POINT, 0) POINT3D * P_ARRAY = New Point3D [10]; ----> Point3D * P_Array; p_array = vec_new (0, Sizeof (Point3D), 10, & Point :: Point, & Point3D :: ~ Point3D) ; Release Resources: Void * VEC_DELETE (Void * Array, // Array Start Address SIZE_T ELEM_SIZE, // Each Object Size INT ELEM_COUNT, / / The number of elements in group VOID (* destructor) (void *, char)) Placement Operator New Semantic POINT2W * PTW = New (Arena) Point2W; Release Method: PTW-> ~ POINT2W ();