In C kann man Array und Pointer normalerweise als gleichbedeutend behandeln.
Einzig wichtiger Unterschied in diesem Fall:
char *v = "hallo"
ist falsch, da die rechte Seite einen konstanten Wert darstellt, der im Codesegment abgelegt wird; der Compiler sollte auch eine Warnung generieren. Es muß also heißen "const char *v", oder es muß ein entsprechender Compilerschalter bemüht werden.
Real stupidity beats artificial intelligence every time.
T. Pratchett, "Hogfather"