Der Unterschied ist folgender:
Ohne Dereferenzierung (also ohne ^) änderst du die Adresse, auf die der Zeiger zeigt.
Mit Dereferenzierung (also mit ^) änderst du den Inhalt, auf den der Zeiger zeigt.
Wenn du einen Zeiger mit Getmem/New erzeugst und änderst die Adresse (ohne Dereferenzierung also), dann erzeugst du ein Memory-Leak, da du diesen Speicher angelegt hast, ihn aber nie wieder freigeben kannst (schließlich überschreibst du die Adresse).
Also..immer schön ans ^ denken