我正在使用C的这个函数来读取带有getLine()函数的用户输入(stdin)。此函数返回带有用户输入的char *。这是片段:
char * rline(void)
{
char *line;
size_t buff = 0;
char * getLine(&line, &buff, stdin);
return line;
}
但是,运行时会显示此错误,但不会编译。
error: expected declaration specifiers or '...' before '&' token
我环顾四周但却无法弄清楚为什么会发生这种情况,我的语法是正确的还是逻辑错误?
答案 0 :(得分:0)
您正在调用该函数错误。在函数调用之前,char *
无需执行任何操作,仅在函数声明中需要它。
正确的函数声明示例:
char * getLine(char *, int, int);
正确的函数调用示例:
getLine(&line, &buff, stdin);
顺便说一句,我认为通过将值设置为第二个参数,可以选择缓冲区的大小。