我知道以下警告是我的錯,但我需要一些幫助來確定我做錯了什麼。我越來越:「通過從兼容的指針類型‘函數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