[+Error+]+cannot+convert+'+student+'+to+'+void+"+for+argument+'1'+to+'+size+_+t+fread+(+void+",+size
时间: 2023-10-10 22:13:59 浏览: 43
这个错误是由于在使用 fread 函数时,将类型为 'student' 的参数传递给了期望的 'void *' 类型。fread 函数的原型是 `size_t fread(void *ptr, size_t size, size_t count, FILE *stream)`,其中第一个参数应该是一个指向要读取数据存储位置的指针,而不是一个具体的数据类型。
如果你想读取 student 类型的数据,你需要先创建一个合适大小的内存块,然后将其转换为 void * 类型,并将其作为 fread 函数的第一个参数传入。例如,假设你要读取一个 student 类型的对象,可以这样做:
```c
student stu;
FILE *file = fopen("students.bin", "rb");
if (file) {
fread(&stu, sizeof(student), 1, file);
相关问题
argument+of+must+be+type+bigint
"argument of must be type bigint" 是一个错误信息,通常出现在使用 PostgreSQL 数据库时。它的意思是函数或操作符需要 bigint 类型的参数,但是实际传入的参数类型不是 bigint,导致出现了错误。
解决这个问题的方法是将参数转换为 bigint 类型,可以使用 CAST 函数或者 :: 运算符进行转换。例如:
SELECT CAST('123' AS bigint);
或者
SELECT '123'::bigint;
如果你能提供更具体的上下文和代码,我可以给出更详细的解答。
encountered+an+improper+argument
"Encountered an improper argument"是Keil软件在运行过程中出现的错误提示。这个错误通常是由于应用程序或调试过程中的某个参数传递错误导致的。为了解决这个问题,你可以尝试以下几步:
1. 检查代码:首先,检查代码中是否存在语法错误、逻辑错误或者参数传递错误,这些问题可能导致"Encountered an improper argument"错误。确保所有参数的类型和值都正确地传递给相关函数或指令。
2. 更新Keil软件:如果你使用的是旧版本的Keil软件,在升级到最新版本之前可能会遇到这个问题。尝试升级Keil软件到最新版本,通常可以修复一些已知的错误和问题。
3. 检查编译器设置:检查编译器的设置,确保编译器选项和参数正确地配置。错误的编译器设置可能导致参数传递错误,进而引发"Encountered an improper argument"错误。
4. 查找和替换文件:根据引用中提到的方法,你可以尝试替换Keil软件的某个文件(比如UV4.exe)来解决这个问题。详细的操作说明可以参考给出的链接。
需要注意的是,由于"Encountered an improper argument"错误的具体原因可能因情况而异,上述方法可能并不适用于所有情况。如果问题仍然存在,你可以尝试在Keil的官方论坛或社区中寻求帮助,或者联系Keil软件的技术支持团队以获取更详细的解决方案。