我想逐行讀取文本行,看一些例子後函數返回數組,我決定使用malloc
方法,但是我不斷收到錯誤從使用malloc
error: subscript of pointer to function type
'void *(unsigned long)'"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *readFile(char filename[])
{
char line[100];
char *list = malloc(100); //causes error...
int i = 0;
FILE *file = fopen(filename, "r");
while (fgets (line, sizeof line, file)!= NULL)
{
list[i] = line;
i++;
}
return list;
}
int main(int argc, char *argv[])
{
char *p = readFile(argv[1]);
for (int i = 0; i<10; i++)
{
printf("%s", list[i]);
}
return 0;
}
基本上我有一個任務來檢查有4列的文本文件,我試圖將每行存儲到一個數組中,然後使用strtok
將每行分成4個令牌。然後我會將每個標記存儲到一個單獨的數組中(以便每列都是一個數組)。然後我會遍歷每個數組並執行所需的操作。但是,我真的堅持這一步。
'list [i] = line;'不是你想要的。你的編譯器也應該警告你。 – mch 2014-09-06 11:50:45
@Kerrek - Stack Overflow歡迎發燒友程序員。也許[我們可以請新用戶好一點嗎?](https://meta.stackexchange.com/questions/9953/could-we-please-be-a-bit-nicer-to-new-users)會適用於此? – jww 2014-09-06 12:36:29
@jww:I * do *歡迎新的發燒友用戶。認真。 – 2014-09-06 13:48:03