我有一个循环链表的自定义数据结构。它的目的是非常利基,所以我想知道是否有一种方法,使每个节点指向一个地址在一个连续的内存块,以实现随机访问。列表在初始填充后根本不会被修改(插入/删除),所以连续块不会妨碍我不认为的任何事情。另外,我之所以不使用向量,是因为我在基于指针重新排列的列表上执行旋转。然而,我用O(n)重新排列指针,而我相信如果我使用连续的内存空间,我可以通过指针算法通过指针算法重新排列指针。// barebones circular list structure{
对于32位系统(无论是Linux、或Windows、还是x86)的C++开发,我有一些初始化的指针,否则这些指针将是未定义的(例如,它们不能立即获得正确的值),如下所示:
int *pInt = reinterpret_cast如果pInt在获得适当的值之前被解除引用,那么在大多数系统上它将立即崩溃(而不是在一些内存被覆盖或进入非常长的循环时崩溃很久)。当然,这种行为取决于底层硬件(从用户进程的奇数地址0xDEADBEEF获取一个4字节的整数可能是完全有效的),但对于我迄今为止开发的所有系统(Mac、Mac、Linux R