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