Предполагая, что переменная-посредник означает дополнительную переменную, следующий код не использует никаких дополнительных переменных. Ответ ниже не будет работать, если максимальный размер строки неизвестен.
#include<stdio.h>
#include<stdlib.h>
int main()
{
char** stringArray = malloc(sizeof(char*)*100); //100 is length of string array
stringArray[0] = malloc(sizeof(char)*2000); //2000 is max string length
scanf("%s",stringArray[0]);
printf("String Received: %s\n",stringArray[0]);
return 0;
}