![](/img/trans.png)
[英]Need to know how to parse words by space in c. Also need to know if I am allocating memory correctly?
[英]I need to know if I am using getline correctly
我在C中使用了getline()函數,當我多次使用它時,它一直給出我的seg錯誤,就像數組一樣。 這是我寫的方式:
temp = (char *)malloc(sizeof(char)*clen);
read = getline(&temp, &clen, stdin);
tn = strtok(temp, ",");
strcpy(travel[tripnum].name, tn);
tn = strtok(NULL, ",");
travel[tripnum].country = tn;
free((void *) temp);
如果我聲明錯誤,請告訴我
如此getline教程中所示,您需要分配(clen + 1)。 一個額外的終端NULL。
你嘗試過這個temp =(char *)malloc(sizeof(char)* clen + 1);
由於空終止字符串
嘗試使用此以及其他人所說的內容。 我覺得getline函數clen應該在沒有&符號的情況下使用。 像read = getline(&temp,clen,stdin);
你的tn
變量( strtok()
結果)指向temp
緩沖區。
temp
緩沖區在代碼段的最后一行被銷毀,但是其中一個tn
指針(到temp
的內部)已保存在travel[tripnum].country
。
這個travel[tripnum].country
是一個懸空指針,通過它的所有訪問都是無效的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.