I have a constructor that allocates several blocks of memory using the new operator.
X::X() {
    a = new int[100];
    b = new char[100];
    c = new float[100];
}
My question is, if the allocation of c fails, and the constructor throws an exception, will the memory for a and b be automatically freed?
 
     
     
     
     
    