프로그래밍(Programming)/c++, 11, 14 , 17, 20

void* operator new(size_t t, 추가 인자와 사이즈 계산

3DMP 2012. 11. 1. 18:08

#include <iostream>
#include <Windows.h>

using namespace std;

struct UObject{
 int aa;
 int bb;
 int cc;
};


enum EInternal {EC_Internal};


void* operator new(size_t t,EInternal* Mem){

 return malloc(t);
}

void* operator new(size_t t){

 return malloc(t);
}

int main(){

 

 int* pi=new int;

 char* pc=new char;

 void* X=new char;

 new( (EInternal*)X ) UObject;     // X 가 *Mem 으로 전달 되고 UObject 의 크기 12가 t 로 전달된다

 

// new( (EInternal*)X ) UObject( UObject 의 생성자 인수목록 ); 


 delete pi;
 delete pc;

 

 return 0;
}

반응형