我正在研究一种压缩算法,其中我们必须用C语言编写代码。该程序需要一个文件并删除每个字符中最重要的位,并将压缩的文本存储在另一个文件中。我写了一个名为compress的函数,如下所示。在释放out_buf时我遇到了seg错误。任何帮助将是一件非常愉快的事情。压缩算法
Q
压缩算法
-1
A
回答
2
您关闭了out_fd两次,当然第二次它是一个无效的文件描述符。但更重要的是,您需要检查您对sizeof()的使用,这与查找动态分配缓冲区的缓冲区大小(sizeof返回指针大小而不是缓冲区)的大小不同。您不显示调用代码,但在传入的缓冲区上使用strcat()总是值得一看(调用程序传递的缓冲区足够大,以便达到结果?)。
无论如何,这应该足以让你再次去......
1
你关闭同一文件描述符两次
close(out_fd);
if (close(out_fd) == -1)
oops("Error closing output file", "");
只需卸下第一close(out_fd)
段故障是因为你移动了out_buf指针。 如果您想要将值放入其malloc'd区域,请使用另一个临时指针并将其移动通过此内存区域。
像这样:
unsigned char *out_buf = malloc(5400000*7/8);
unsigned char *tmp_buf = out_buf;
然后SUBST每*out_buf++
与*tmp_buf++
;
更改out_buf
内写呼叫tmp_buf
相关问题
- 1. 算法Html压缩
- 2. 保证压缩比的压缩算法?
- 3. 时间串压缩算法
- 4. 数组压缩算法
- 5. 关于压缩算法
- 6. 整数CSV压缩算法
- 7. 最好的压缩算法
- 8. 不可能压缩算法
- 9. 解压压缩串霍夫曼算法
- 10. “启动”或“训练”将用于压缩/解压缩的压缩算法?
- 11. 压缩文件中记录的压缩算法是什么?
- 12. 压缩流的能力如何影响压缩算法?
- 13. 不同压缩算法的权衡
- 14. 使用Quadtrees算法的图像压缩
- 15. 文本压缩 - 什么算法使用
- 16. 如何编写压缩算法?
- 17. 使用什么语音压缩算法?
- 18. 字符串的压缩算法
- 19. 创建基本压缩算法
- 20. 使用小字典的压缩算法
- 21. JAVA中的ESRI几何压缩算法
- 22. 位图图像的压缩算法
- 23. C#:寻求PNG压缩算法/库
- 24. 仅限数字的压缩算法
- 25. Java:有损图像压缩算法
- 26. 结合无损数据压缩算法
- 27. 选择压缩算法来实现
- 28. 压缩算法的完整描述
- 29. C++用于流的压缩算法
- 30. LZMA压缩算法 - 值得它