char *arr[512][lineCount];
while(lineCount > 0){
char *savedLine = malloc(512);
while(1){
fread(savedLine, 1, 1,fd);
if(savedLine != '\n'){
arr = savedLine;
}else{
break;
}
}lineCount --;
}
所以我試圖創建一個逐行存儲字符的2D字符數組。 我不允許使用fgets,因此我一次使用fread存儲一個字符,直到達到'\n'
。但它不會編譯,說我無法比較指針和整數(savedLine != 'n'
),並且數組類型不可分配(char *arr[512][lineCount]
)。其餘的變量在我的代碼中聲明。如何使用fread將char保存到我的二維數組?
這些尺寸看起來特別混亂。這不應該是char指針數組的數組。如果有的話它應該是指向char的VLA。也就是說,我首先將'char * arr [512] [lineCount];'改成'char * arr [lineCount];'。我也有一個升序計數器,從零開始,在建立你的列表的同時對'arr'進行索引。最後,[fgets](http://en.cppreference.com/w/c/io/fgets)可能更適合每行工作。 – WhozCraig
啓用編譯器警告.'savedLine!='\ n''應警告以及其他人:比較指針與字符常量。 – chux