最新内容

浅析weak指针的实现(指针 volatile)

浅析weak指针的实现oc中weak指针主要用于打破循环或者防止循环引用的发生,应用场景还是很广泛的。那么被weak修饰的指针与被指向的对象在底层的运作机制究竟怎样的呢?为什么在对象释放销毁时weak指针能自动置为nil,从而避免了野指针的错误?weak指针实现原理当对象被一个weak指针引用时,底层的实现原理就是:不对被引用的对象进行retain,而是利用 …

Rust智能指针完全指南:内存管理的"神兵三件套"

编程如烹饪,内存管理就像食材处理。普通引用是简单食材,智能指针则是帮你搞定复杂食材的烹饪神器!今天我们就用生活化比喻+实战代码,彻底搞懂Rust智能指针!智能指针全景图智能指针生活比喻核心功能适用场景线程安全Box<T>私人行李箱堆分配+单一所有者大数据递归类型Rc<T>共享单车系统共享读+引用计数单线程数据共享RefCell< …

LeetCode-117-填充每个节点的下一个右侧节点指针 II

填充每个节点的下一个右侧节点指针 II题目描述:给定一个二叉树:struct Node {int val;Node *left;Node *right;Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。示例 …

智能指针是“香饽饽”还是“陷阱”?坑了多少C++程序员

调试时发现两个对象死活不释放内存?shared_ptr循环引用这个坑多少人踩过。上周写代码时就遇到struct A和B互相持有对方的shared_ptr,内存直接泄漏。循环引用简直是shared_ptr的致命陷阱。两个对象各持有一个指向对方的shared_ptr,引用计数永远降不到零。资源卡在内存里释放不掉,程序跑久了内存直接爆炸。网上随便搜一圈全是血泪案例 …

C|顺序存储、链式存储的地址偏移与指针移动

理解数据的存储和指针,关键在于了解其地址如何偏移及指针如何移动。1 按字节移动string.h中有一串内存操作函数,函数参数和返回值的类型为void*,其实现按字节移动来操作(char的大小刚好是1个字节,char操作就是字节操作)。void * memmove ( void * dst, const void * src, size_t count){vo …

你所不知道的C语言:指针篇(续)(c语言指针通俗理解)

载前的说明forward declaration可以达到向用户隐蔽信息的目的,linux内核源码,关于forward declaration的使用无处不在,这也体现了linux内核高内聚低耦合的设计思想。jserv老师在这方面做了很详细的解说,非常值得深入学习和研究。由于头条无法添加外部链接,因此我会在标有下划线文字部分添加相应的链接地址以及说明。forwa …

2025-06-17:移除边之后的权重最大和。用go语言,给定一棵包含 n

2025-06-17:移除边之后的权重最大和。用go语言,给定一棵包含 n 个节点(编号 0 到 n-1)的无向树,边的信息由一个长度为 n-1 的数组 edges 提供,其中 edges[i] = [ui, vi, wi] 表示节点 ui 与节点 vi 之间有一条权重为 wi 的边。你需要选择性地删除一些边(也可以不删),使得满足以下条件:o 每个节点最多 …

TCPIP卷一(3):静态路由与CEF下的负载均衡

内容说明一、路由表存在内容二、路由器执行路由匹配的原则三、下一跳和出接口的区别四:CEF的负载均衡方式五:静态路由的扩展之前已经谈过二层封装了,那么在看静态路由的时候就清晰多了,否则的话,有些地方会不太明白,并且,这次会介绍CEF的负载均衡方式,这也是卷一里面提到过的。这是卷一第三章提到的,主要说明了路由表和路由匹配的方式。一、路由表存在内容1、 目的地址: …