Nigdy nie modyfikuj wskaźnika na pamięć dynamiczną! Może za wyjątkiem sytuacji, gdy wiesz, co robisz. Narażasz się przez to na wycieki pamięci. Zapomnisz o modyfikacji i jak wtedy zwolnisz pamięć? Używaj drugiego sposobu lub innego niezmieniającego wartości wskaźnika.
A który jest szybszy? Pewnie pierwszy, ale taka różnica w użytkowym programowaniu nie powinna cię martwić.