我知道以下警告是我的错,但我需要一些帮助来确定我做错了什么。我越来越:“通过从兼容的指针类型‘函数getline’的参数1”,并为论证2.从不兼容指针类型传递getline()的参数
这里同样的事情,是我调用函数getline():
getline(&line.buf, &maxSz, stdin)
这里有相关参数声明:
line_t line;
int maxSz = 1000;
和
typedef struct line_t {
char buf[1000];
int lineLength;
int wordCount;
int index;
} line_t;
我认为这个问题是我是牛逼提出了什么是指针的地址,但在测试了一些不同的getline调用时,我还没有找到解决方案。我绝对认为参数2是maxSz不是指针的事实。
while (-1 != (line.lineLength = getline((char**) &line.buf, &maxSz, stdin))) {
printf("buf is %s\n",line.buf);
为什么上述给我一个无限循环?
非常感谢。这解决了争议2.我会有一个谷歌,以确保我理解size_t正确。你知道如何解决争论1? – user4062632 2014-09-23 03:58:16
非常感谢。那摆脱了它!如果我后来想打印line.buf(仅供参考,我希望这将是stdin的整行),我使用什么格式描述符?我一直在尝试%s,但是这给了我以下信息:“format'%s'期望类型'char *',但参数2的类型为'char(*)[1000]'” – user4062632 2014-09-23 04:06:05
非常感谢。这绝对是惊人的。我可以再问一件事吗?我编辑了这个问题,在底部添加了一些代码。它坚持一遍又一遍地打印相同的行。你能帮我弄明白这是为什么吗? – user4062632 2014-09-23 04:23:17