我正在尝试使用GCC手册中指定的动态读取输入scanf
和存储,但它给出了编译时错误.char *
char *string;
if (scanf ("%as",&string) != 1){
//some code
}
else{
printf("%s\n", *string);
free(string);
//some code
}
Run Code Online (Sandbox Code Playgroud)
Nie*_*jou 11
如果使用标志进行编译,则scanf的a
修饰符将不起作用; 确保你没有使用它.-std=c99
如果你的glibc版本至少为2.7,你可以而且应该使用m
修饰符来代替a
.
此外,您有责任释放缓冲区.