无论出于何种原因,下面的代码打印(空):scanf函数动态分配
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char *foo;
scanf("%ms", &foo);
printf("%s", foo);
free(foo);
}
我试图为动态字符串分配内存,但正如我刚才所说我的程序只是输出(空)。我通过使用getche和realloc来创建一个函数来解决这个问题,但是由于我还必须编程如果用户输入退格键,选项卡等等时会发生什么,所以它似乎几乎毫无意义。但正如我所说的,这只是一个工作周围,我宁愿知道为什么上面的代码是不工作...
附加信息:
我现在用的是PellesçIDE v7.00,并与C11标准编译
'%ms'打算做什么? – 2012-08-13 00:18:44
@Greg m标志应动态分配内存以包含输入。 – 2012-08-13 00:22:17
这是不是标准?我没有在我的'scanf'文档中看到。 – 2012-08-13 00:23:17