【关于C语言二进制拷贝文件的几个小问题】
#include<stdio.h>#include <malloc.h>int main(void){ int nLen; FILE *fp,*fp1; fp=fopen("123.exe","rb"); fseek(fp,0L,SEEK_END); nLen = ftell(fp); char *buffer = (char*)malloc(sizeof(char)*nLen+1); //这里用int数组也可以哦 注意用int时把下面三处的nLen+1的+1去掉 //int *buffer = (int*)malloc(sizeof(int)*nLen); //void 指针 不知道是个什么意思 竟然也可以 //void *buffer = (void*)malloc(nLen); if (buffer==NULL) { printf("memory error!\n"); } fseek(fp,0,SEEK_SET); fread(buffer,nLen+1,1,fp); fclose(fp); fp1=fopen("456.exe","wb"); fwrite(buffer,1,nLen+1,fp1); fclose(fp1); free(buffer);}