开发者社区> 问答> 正文

队列pop函数

突然有个这样的疑问:如下代码,这样子的访问是完全安全的吗?不是队列头元素已经删除,那么后面继续访问它,这样可以?
注:pop函数返回头元素的指针。

/* q为一个队列,p是队列元素的指针 */
p = q.pop();
/* something else */
printf("%d",p->value);

展开
收起
a123456678 2016-06-07 19:20:47 3229 0
1 条回答
写回答
取消 提交回答
  • 不是删除,是出队;
    p = q.pop()执行之后,p 指向该元素,同时 队列的指针会指向该队列下一个元素,并且队列长度减一。
    只要 p 指向的元素在内存里没有被销毁,那么就可以访问的。

    当然,如果这个队列是你自己实现的,在pop后free队头元素,那么就真的无法访问的,不过一般都不会这么做,否则就失去队列的实际意义了。

    2019-07-17 19:30:50
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载