if(c) wird wohl nichts andres machen als zu gucken ob c einen wert ungleich null hat. Die dürfte wohl meist der fall sein, wenn new keinen speicher allokieren konnte...
Normalerweise fängt man aber wenn man befürchtet der speicher reicht nicht aus eine exception vom typ std::bad_alloc ab... -- ...fleißig wie zwei Weißbrote