【发布时间】:2020-05-12 13:12:51
【问题描述】:
我试图弄清楚如何创建一个链接到单字节数组的链表。所以我放入字节数组的每个元素都可以是 enqued() 和 dequeued()。但是,我需要弄清楚如何使用指针偏移和链表来做到这一点。
我的问题是: 如何从指针的开头获得设定量的偏移量?例如,假设我的列表的开头是一个指针。我将首先检查该空间是否为空,如果不是,则获取列表中的下一个值。如何从当前指针位置偏移并获得一个新的指针位置,该位置基本上只是另一个指针的偏移量,向前或向后,向上或向下,向左和向右,正负。
有人问了一个例子:
byte myData[1024];
我必须将我的所有数据存储到此。这是课堂作业。本质上,我必须使用这个数组来存储我的所有数据,并且基本上创建一个队列,就像标准的 c++ 队列一样。我必须创建 Enqueue() 和 Dequeue() 函数,然后为每个函数动态分配内存。我对自己在做什么有一个大致的了解。我一直试图弄清楚如何获取当前位置的指针,然后将其设置为新位置,然后将其作为列表中的“下一个”。
【问题讨论】:
-
什么是单字节数组?你的意思是
char singlebytearray[1];? 请在您的问题中提供一些minimal reproducible example,以便edit。 参考this C++ website 或n3337 C++ 标准。 -
Basile,我添加了更多信息。我不知道这是否有帮助。
-
您应该阅读诸如Introduction to algorithms 和一些C++ programming 之类的书。还要阅读一些textbook on operating systems,当然还要阅读n3337 C++ 标准。回答您的问题需要一本完整的书,我们没有时间专门为您写一本。
-
链表还是数组表?你提到了两者,但它们是非常不同的东西。要回答您的评论,只需添加或减去指针。当指针存在时,应该已经涵盖了这一点。我认为问题在于,当您只需要指针运算时,您会抛出许多非常复杂的概念(分配器、内存偏移)。
标签: c++ memory memory-management