我开始学习C,我必须编写一个程序来计算文件中的单词数。我不知道文件的大小,所以如何在不知道大小的情况下声明数组呢?我知道number_of_words
没有给出,但我该怎么办?
(在我的代码中,根据分配说明,我不应该使用fgets
或EOF
)
int main(int argc, char const *argv[]) {
char* word[] = {"/usr/bin/ls", "-1", NULL};
int number_of_words;
int i;
word = malloc (number_of_words * sizeof(char));
FILE* f = fopen (argv[1], "r");
fscanf(f, "%s", &word);
if ( f == NULL) {
return -1;
}
for (i = 0; word[i] != NULL; i++) {
return i;
}
}
答案 0 :(得分:0)
对于这类问题,正如我从一些编译器课程中理解的那样,你应该动态地增加你的数组 - malloc 你选择的起始大小,跟踪它是多少,以及 realloc 如果它已满。
我赞同Bing Bang的感觉,教授可以指导你朝着正确的方向前进。我发现我的教授很有帮助。