получить указатель на строку си++

например , как здесь:

char *f(char *s1, ...)
{ char **cp = &s1;            //--адрес первого указателя
   int len = 0;        
   // цикл для определения общей длины сцепляемых строк
   while (*cp) { len += strlen(*cp); cp++; }                          
  char *s = new char[len+1];       //--память для строки
  s[0]=0;                       //-- "очищаем" строку
// цикл для сцепления строк
  cp=&s1;                       //-- опять установка на 1-й параметр
  while (*cp) 
  {  strcat(s, *cp);             //-- прицепляем первую (и следующие)
     cp++;                       //-- перемещаемся на следующую
  }         
  return s;
}