It seems odd that it would use free when we are using c++. Is there an obvious reason for it?