new02.c

来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 39 行

C
39
字号
#include "fail.h"
#include <stdlib.h>
#include <stdio.h>
#include <stddef.h>
#include <new.h>

struct T {
    int a;
    virtual ~T() {}
};
struct P {
    int a;
    virtual ~P() {}
};
struct S : P, T {
    int a[100];
    void operator delete( void *p, size_t size )
    {
	if( size < sizeof( S ) ) {
	    fail(__LINE__);
	}
	::delete p;
    }
};

int main()
{
    P *t1 = new S;
    P *t2 = new S;
    T *t3 = new S[10];
    T *t4 = new S[10];

    delete t1;
    delete t2;
    delete [] t3;
    delete [] t4;
    _PASS;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?