Por alguna razón las siguientes impresiones de código (nulo):scanf asignación dinámica
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char *foo;
scanf("%ms", &foo);
printf("%s", foo);
free(foo);
}
Estoy intentando asignar memoria para una cadena de forma dinámica, pero como he dicho antes mi programa simplemente da salida (nulo). Trabajé alrededor de esto haciendo una función usando getche y realloc pero parece casi inútil debido al hecho de que también tuve que programar lo que sucedería si el usuario ingresara retroceso, tabulación, etc. Pero como dije eso es solo un trabajo alrededor y yo preferiría saber por qué el código anterior no está funcionando ...
Información adicional:
estoy usando el V7.00 Pelles C IDE y compilar con la norma C11
¿Qué pretende hacer '% ms'? –
@Greg El indicador m debe asignar dinámicamente memoria para contener la entrada. –
¿Es eso no estándar? No veo eso en mi documentación 'scanf'. –