Hola, no entiendo a que te refieres con el largo del vector definido por el usuario, Segun se, no puedes asignar un tamaño a una matriz o vector en tiempo de ejecucion, porque esta se debe conocer en tiempo de compilacion, Ahora si usaras la funcion MALLOC, ahi si puedes crear o asignar espacios en tiempo de ejecucion, Si me das mas datos intento ayudarte a encontrar tu solucion. Saludos.