我正在做一个电影分级管理程序。我声明了size_t作为要计数的数据类型,但是我得到了这个错误。你怎么了?
int main(){
struct movie movie_list[LMAX];
size_t n_items = 0;
read_file(movie_list, &n_items);
void read_file(struct movie movie_list[], int *ptr_n_items){
for (int n = 0; n < num; ++n){
if (fscanf(file, "%[^\n]%*c", movie_list[*ptr_n_items].title) != 1 || fscanf(file, "%f%*c", &movie_list[*ptr_n_items].rating) != 1){
printf("ERROR: Wrong file format.\n");
exit(1);
}
*ptr_n_items += 1;
}
assert(*ptr_n_items == num);
我不知道怎么解决这个错误。告诉我怎么做。
2条答案
按热度按时间yr9zkbsy1#
问题是你给一个需要
int*
的函数提供了一个size_t*
。你需要做以下之一:size_t n_items = 0;
更改为老师的建议是使用
size_t
s,所以我建议使用上面的第二个修改。kmbjn2e32#
read_file()
被传递一个指向size_t
或size_t *
的指针,但它需要一个指向int
或int *
的指针。将
n_items
的类型更改为int
(不推荐):或者更改
read_file()
的第二个参数以接受size_t *
: