Hallo,
Mit :const char hallo[] = { "Hallo Welt\n" };
geht es ja nur beim deklarieren am Anfang des Codes.
1. Lass Dir dieses const auf der Zunge zergehen überleg 2 Sekunden und gib Dir selbst eine Antwort darauf, ob Du da noch was im laufendem Programm verändern kannst Bild  
2. Gut angenommen, Du läßt const Weg damit ist Dein char hallo[] genau 11 Bytes lang (der Text + Zeilenumbruch + '\0')
Damit mußt Du dafür Sorgen, daß Du nichts größeres hineinkopierst.
3. Nach der Einführung gibt es wieder 2 Wege:
A. Du nutzt die string.h und gukst Du dir strcpy(char *a,char *b) an,
es kopiert Array/Zeichenkette b in a inklusive '\0' a u. b müssen natürlich auch Nullterminiert sein.
B. Du implementierst Dir eine eigene Routine dafür z.B. so
Code:
void kopierebina(char *a,char *b) {
   while(*a++ = *b++);
     *a='\0';
   }
Du hast die Wahl Bild  

Gruß Sebastian