try {
 a = new char[1024];
 b = new char[1024];
 c = new char[1024];
} catch(bad_alloc e) {
 return 0;
}

ここで c の new の時に例外が発生した時にはやはり a , b は解放しなくてはいけないのでしょうか
また、スマートな解放の仕方をおしえてください