我已经完成了编写代码,但无法找出错误的解决方案。我认为这很简单。
我有3个文件
grades.txt // contains 8 grades
grades.h // structure
grades.c // main
以下是该程序的描述
grades.h
#ifndef GRADE
#define GRADE
struct GR {
float gr[8];
};
#endif
成绩。
#include <stdio.h>
#include "grades.h"
int main(int argc, char *argv[]) {
struct GR *grades = melloc(sizeof(struct GR));
FILE *file = fopen(argv[1], "rb");
// convert character uid into integer uid
char *chUid = argv[2];
int uid = 0;
int len = strlen(chUid);
for (int i = 0; i < len; i++) {
uid = uid * 10 + (chUid[i] - '0');
}
printf("Converted uid: %d \n", uid);
fread(grades, uid * sizeof(struct GR), 1, file);
float total = 0, avg = 0;
int i = 0;
while (i < 9 && grades->gr[i] > 0) {
printf("%d\n", grades->gr[i]);
total += grades->gr[i];
i++;
}
printf("Average: %d \n", total / i);
return 0;
}
我的错误消息是
错误LNK2019:函数_main中引用的未解析的外部符号_melloc 错误LNK1120:1个未解析的外部
----更新------
我添加了标题并更改了melloc和malloc的拼写错误,错误消失了但我仍然坚持使用fread方法.. struct没有任何价值
答案 0 :(得分:0)
你有
错误LNK2019:未解析的外部符号_melloc在中引用 function _main
因为在C中分配内存的功能称为malloc
而不是melloc
(瓜可能; p):
void* malloc (size_t size);
您必须包含声明malloc
的标头:
#include <stdlib.h>
答案 1 :(得分:0)
你的错误告诉了一切。
error LNK2019: unresolved external symbol _melloc referenced in function _main
它不是melloc
,而是malloc