Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想读取视频文件并保存为二进制文件并再次写入视频文件。我用 180MB 的视频进行了测试。我使用了 fread 函数,它发生分段错误,因为视频的数组大小很小。
这些是我的问题:
我使用 160*1024 字节的 char 数组。char 数组的最大大小是多少?我该如何解决这个问题?
该程序需要作为:
由于公司的安全规则,我无法上传我的代码。任何提示将不胜感激。
首先使用fseek()with SEEK_END,然后使用ftell()确定文件大小,然后分配所需的内存malloc()并将数据写入该内存。
fseek()
SEEK_END
ftell()
malloc()
如果我理解正确,您不需要分配这么多内存,而只需 128 字节。
char buf[128]; while(/* condition */) { ret = fread(buf, sizeof buf, 1, fp_in); encrypt(buf); ret = fwrite(buf, sizeof buf, 1, fp_out); }