Secondo me in quanto spazio occupato nella memoria sono uguali in quanto nel primo caso lo spazio viene riservato in fase di esecuzione nel momento in cui compare l'istruzione strlen() e liberato solo alla fine del ciclo, mentre nel secondo caso si assegna spazio alla variabile l alla quale viene poi assegnato il valore restituito da strlen().. In quanto a velocità di esecuzione penso sia più veloce il secondo