当前位置: 首页 > 知识库问答 >
问题:

无动态内存分配的C语言无损数据压缩

柳星晖
2023-03-14

我目前正试图为我正在从事的一个项目实现一种无损数据压缩算法。目标是压缩浮点值的固定大小列表。代码必须用C编写,不能使用动态内存分配。这让我很伤心,因为大多数无损算法(如果不是全部的话)都需要一些动态分配。

我一直在研究的两个主要算法是哈夫曼算法和算术算法。如果没有动态内存分配,这个任务可能吗?你们有什么方法或想法吗?如果您认为不可能,请告诉我原因:-)

任何帮助/建议都会有帮助!

共有1个答案

乔俊才
2023-03-14

我看不出有任何理由需要动态内存分配。工作数据集的大小是有界的,因此只需使用该大小的数组(最好具有自动存储持续时间,这样您就不会使代码无偿不可重入,但静态存储持续时间也会工作),并在其中完成所有工作。

 类似资料:
  • 本文向大家介绍C语言 动态内存分配详解,包括了C语言 动态内存分配详解的使用技巧和注意事项,需要的朋友参考一下 C语言 动态内存分配详解 动态内存分配涉及到堆栈的概念:堆栈是两种数据结构。堆栈都是数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。 栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 堆(操作系

  • 我正在寻找一种可以在STM32L4上运行的无损数据压缩算法实现。数据是ECG曲线(因此基本上是一组16位数值,彼此相对接近)。 我发现了不同的实现,例如Miniz,但它们都使用动态存储分配(我想避免),而且也非常复杂和消耗资源。 我读过这篇文章,但没有真正的答案。我希望避免修改现有实现以摆脱动态分配,因为此功能(数据压缩)不是我的主要优先事项。 我不需要最先进的算法,而是需要一个简单的、资源有限的

  • 内存分布之数据段 不管我们以后是自己写代码还是读别人的代码,都应该想想这个变量默认存储的位置。在我们以后的嵌入式开发中,技巧性的代码越来越多的时候,我们可能把某一些代码放在一段。我们可以通过修改变量或者代码默认放置的段,让它被放到其它的段中。我们也可以自己定义一个新的段。 随着运行,栈空间是随时会变化的。栈空间临时的去存储一些变量,当我们进入一个函数,系统就会在栈空间去分配一片内存去保存这个函数里

  • 本文向大家介绍C#无损压缩图片,包括了C#无损压缩图片的使用技巧和注意事项,需要的朋友参考一下 话不多说,请看代码: 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持呐喊教程!

  • 问题内容: 当您知道on上对象/项目的确切数量时,我非常想知道哪种内存分配方法对性能(例如,运行时间)有利,这对性能有好处。少量对象(少量内存)和大量对象(大量内存)的成本。 与 请告诉我。谢谢。 注意:我们可以对此进行基准测试,并且可能知道答案。但是我想知道解释这两种分配方法之间性能差异的概念。 问题答案: 静态分配将更快。静态分配可以在全局范围和堆栈上进行。 在全局范围内,静态分配的内存内置在

  • 我想知道我们可以在多大程度上进行无损数据压缩;我无法找到一个无损算法的在线模拟器来执行一些经验测试。我可以自己做一个,但不幸的是,我在这段时间没有足够的时间;我仍然对我的直觉感到好奇,我将解释一下。 让我们只看两种更流行的算法: