Temp* temp = (Temp*)malloc(sizeof(Temp));
free(temp);

이럴 경우 생성자는 호출되지 않습니다.

Temp* t = new Temp();
delete t;

이럴 경우 생성자는 호출됩니다.

이게 new와 malloc의 차이점이라 생각하는데요. 이것 말고 다른 차이점은 있을까요?
그리고 내부적으로 malloc와 new의 동작을 알고 싶습니다.

Tree를 구현하려고 CNode 안에 left, right 같은 것을 생성자로 NULL로 초기화를 하려고 하는데 의외로 생성자가 통하지 않아서
감짝 놀라고 있는 중입니다.(malloc로 하고 있었거든요)

아 그리고 추가 질문

변수를 초기화 하지만 쓰레기 값이 들어가지요.
"그렇다면 변수에 쓰레기값이 들어 있다면" 이라는 것을 표현하고 싶은데 이런 것은 표현할 방법이 없나요?
즉 if ( 변수명 == 쓰레기값 )
     { 어절씨구리 }
이런 것을 의도하고 싶습니다. ...뭐 없다면 어쩔 수 없지만요

그럼 조언 부탁드리겠습니다.(__)