Myślę, że dobrym rozwiązaniem będzie użycie funkcji memset()
http://en.cppreference.com/w/c/string/byte/memset
Taki szybki przykład na bazie Twojego kodu (przykład pewnie trochę głupi, ale to nie ma chyba większego znaczenia).
char *str = (char*)malloc(6 * sizeof(char));
memset(str, 'A', 5);
str[5] = '\0';
printf("%s", str);
free(str);
Alokujemy sobie dynamicznie 6 elementów typu char. Pięć z nich wypełniamy literką A, natomiast ostatni to znak null (koniec łańcucha znaków). I teraz możemy sobie wypisać wygenerowany przez nas tekst.
@EDIT
Chociaż teraz widzę, że chyba chodzi Ci o inicjalizację wartościami różnymi.