Vorrei far notare all'OP che allocare con new[] e deallocare con free() porta jella.