youngyangyang04 / Skiplist-CPP

A tiny KV storage based on skiplist written in C++ language| 使用C++开发,基于跳表实现的轻量级键值数据库🔥🔥 🚀

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

%forward 数组越界访问

1nchy opened this issue · comments

commented

Node 节点的 %forward 变量的内存是构造函数中分配的,且大小并不是最大值 %_max_level。
插入节点时,特别是当 %random_level 大于 %_skip_list_level,更新路径上各节点 %forward 时,并没有重新分配内存,而是直接下标操作,看起来有越界的问题?
(各节点 %forward 数组长度一定是小于等于 %_skip_list_level 的)

commented

哦,我明白了。
除了 头部引导节点以外,其他节点的 %forward 数组长度 在插入/删除操作中,都是不会发生变化的。所以在新建节点时,将数组长度定下保持不变是可以的。

commented

your code is nice, but it's mine later :)