Tip: per semplificarti la vita lascia stare i char * e usa le std::string (e se necessario std::istringstream), così ti puoi concentrare sugli aspetti "veri" di parsing e non su menate di gestione della memoria.