【发布时间】:2014-09-06 11:48:05
【问题描述】:
我正在尝试逐行阅读文本,在查看了一些示例后,我决定使用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;不是你想要的。你的编译器也应该警告你。 -
@Kerrek - Stack Overflow 欢迎狂热的程序员。也许Could we please be a bit nicer to new users? 会在这里适用?
-
@jww:我确实欢迎新的狂热用户。说真的。
标签: c arrays pointers memory-management