#include <stdio.h> int main(void) { int nRead=0; FILE *fp_in = NULL; FILE *fp_out = NULL; char *ptr=NULL; unsigned char DataBuffer[3000] = {0}; ptr=DataBuffer; fp_in=fopen("video-H264-1","rb"); fp_out=fopen("video-out","wb"); do { if((nRead = fread(DataBuffer,sizeof(char),3000,fp_in))!=3000)break; fwrite(ptr,3000,1,fp_out); } while (nRead>0); return 0; }
--------------------Configuration: test - Win32 Debug--------------------
Compiling...
2.cpp
E:\workspace\test\2.cpp(10) : error C2440: '=' : cannot convert from 'unsigned char [3000]' to 'char *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
执行 cl.exe 时出错.
test.exe - 1 error(s), 0 warning(s)
出这样的错误,后来才知道unsigned char数组名不能直接赋给指针,得加上(char *)强制转换