Se dai un'occhiata alla doc ufficiale, l'oggetto String[] è trattato alla stessa maniera di tutti gli altri oggetti array (o vettore), con i propri e appositi metodi per gestirne il contenuto.
Diversamente da C, Gambas e in genere gli altri linguaggi gestiscono tutto dinamicamente. Anche in C++ puoi usare l'oggetto String, che si comporta allo stesso modo. Ormai le funzioni alloc/malloc vengono usate solo in caso di maggior controllo del codice e delle informazioni trattate, in particolare si programmi real-time, tenendo conto che gli oggetti e la loro gestione sono molto pesanti e più laboriose, e ovviamente più voraci in termini di risorse e di tempi di elaborazione.