Edit: Ich habe mich total geirrt... Bin irgendwie davon ausgegangen, du würdest dem Buffer etwas hinzufügen -.- Keine Ahnung wie ich mich so vertun konnte...

Warum die erste Variante nicht funktioniert kann ich so nicht sagen. Es wäre hiflreich, wenn du den Fehler etwas genauer erläutern könntest.

Was auch eine Alternative wäre: Anstatt in das Ziel des Pointers, der als Parameter mitgegeben wird, die Daten reinzuschreiben, könntest du auch einfach den Pointer auf den schon vorhandenen Datensatz zeigen lassen. Wäre jedenfalls eine noch sparsamere Methode.