質問です。
class CLine{
 public:
  CLine(int n);
  ~Cline();

  char * buf;
}
CLine::CLine(int n){
  buf = (char *)malloc(n * sizeof(char));
}
CLine::~CLine(){
  if(buf) free(buf);
}

main()
{
  CLine *pl = new CLine(0);
  delete pl;
}
とやってみたら(実際のソースはもっと複雑ですが…)デバッグエラー、とかになってメモリ解放で失敗しますた。
これをmallocやfreeの部分をnew,deleteにしたらokになりました。
これはc++の合法的なルールなのですか?つまりmalloc系とnew系は
混在させると不都合が起きますか?