从不兼容的指针类型传递 fwrite 的参数 4
Passing argument 4 of fwrite from incompatible pointer type
我想将源文件的内容复制到目标文件,但是我得到这个警告:
warning: passing argument 4 of ‘fwrite’ from incompatible pointer type [-Wincompatible-pointer-types]
fwrite(target, sizeof(char), targetSize, sourceContent);
如果我忽略警告,则会出现分段错误。
FILE *source = fopen(argv[1], "r");
FILE *target = fopen(argv[2], "w");
if (source == NULL || target == NULL) {
printf("One or both files do NOT exist\n");
abort();
}
fseek(source, 0, SEEK_END);
long sourceSize = ftell(source);
fseek(source, 0, SEEK_SET);
char *sourceContent = (char *)malloc(sourceSize);
fread(sourceContent, sizeof(char), sourceSize, source);
long targetSize = sourceSize;
fwrite(target, sizeof(char), targetSize, sourceContent);
两个fread()
and fwrite()
都将read/write的缓冲区作为第一个参数,文件作为第四个参数。
// This is fine.
fread(sourceContent, sizeof(char), sourceSize, source);
// Swap the first and fourth argument in the fwrite call.
fwrite(sourceContent, sizeof(char), targetSize, target);
我想将源文件的内容复制到目标文件,但是我得到这个警告:
warning: passing argument 4 of ‘fwrite’ from incompatible pointer type [-Wincompatible-pointer-types]
fwrite(target, sizeof(char), targetSize, sourceContent);
如果我忽略警告,则会出现分段错误。
FILE *source = fopen(argv[1], "r");
FILE *target = fopen(argv[2], "w");
if (source == NULL || target == NULL) {
printf("One or both files do NOT exist\n");
abort();
}
fseek(source, 0, SEEK_END);
long sourceSize = ftell(source);
fseek(source, 0, SEEK_SET);
char *sourceContent = (char *)malloc(sourceSize);
fread(sourceContent, sizeof(char), sourceSize, source);
long targetSize = sourceSize;
fwrite(target, sizeof(char), targetSize, sourceContent);
两个fread()
and fwrite()
都将read/write的缓冲区作为第一个参数,文件作为第四个参数。
// This is fine.
fread(sourceContent, sizeof(char), sourceSize, source);
// Swap the first and fourth argument in the fwrite call.
fwrite(sourceContent, sizeof(char), targetSize, target);