Bueno ya que preguntas, en realidad un array de buffers de tamaño fijo es una solución un poco chapuza ya que desperdicia memoria.
Es mejor que tengas una variable grande para los scanf, y que luego reserves la memoria que necesites con malloc.
Ejemplo:
Código:
...
char comando[1024];
char * ejecutar[TAMANO];
for(i=0;i<TAMANO;i++)
{
fscanf( stdin,"%s", comando );
ejecutar[i] = (char*)malloc( strlen(comando)+1 );
strcpy( ejecutar[i] , comando );
...
}