#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
typedef uint8_t BYTE;
int main(int argc, char *argv[])
{
char *block = malloc(BYTE * 512);
FILE *file = fopen(argv[1], "r");
fclose(argv[1]);
}
我不知道我做错了什么,我还没有开始编写任何实际代码,我是 C 中的指针的新手。我什至没有做任何事情就已经出现错误,我很抱歉。
clang -ggdb3 -O0 -std=c11 -Wall -Werror -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wshadow recover.c -lcrypt -lcs50 -lm -o recover
recover.c:9:26: error: unexpected type name 'BYTE': expected expression
char *block = malloc(BYTE * 512);
^
recover.c:12:12: error: incompatible pointer types passing 'char *' to parameter of type 'FILE *' (aka 'struct _IO_FILE *') [-Werror,-Wincompatible-pointer-types]
fclose(argv[1]);
^~~~~~~
/usr/include/stdio.h:213:26: note: passing argument to parameter '__stream' here
extern int fclose (FILE *__stream);
^
2 errors generated.
make: *** [<builtin>: recover] Error 1
因为fclose
您应该传递一个FILE *
作为参数,对于您的情况,它将是fclose(file);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句