Hi,
nur scheint die syntax zu hinken -
Nein, das liegt nicht an der Syntax, sondern am Verständnis.
Entweder du verwendest einen Pointer auf einen Pointer, oder du gibst den Pointer mit return zurück.
Weil wenn du so wie momentan die Funktion initArray() aufrufst wird *text in main() nicht verändert und zeigt nach wie vor auf eine zufällige Speicheradresse (weil nicht initialisiert) und nicht auf den extra reservierten Speicher.
mfG,
steckl