/* 删除压缩表zl中p指向的结点,返回删除结点之后的压缩表
删除之后p指向p的下一个结点,这样方便对链表结点进行迭代删除 */
unsigned char *ziplistDelete(unsigned char *zl, unsigned char **p) {
size_t offset = *p - zl;
/*函数__ziplistDelete功能:从压缩表zl中指针*p指向的结点开始删除,连续删除1个结点*/
zl = __ziplistDelete(zl, *p, 1);
/*在删除结点的时候,可能会对zl的内存进行重分配(比如保存前置结点长度的内存空间需要扩容),
所以利用offset首先记住p结点的位置,这样在删除结点之后,p指向的就是需要删除的结点 之后的第一个结点 */
*p = zl + offset;
return zl;
}