造一个节点出来
(本条路线统一用 gcc -std=c11 -O0 编译)malloc 一个节点,两个字段都填好。
⚠️ 把三个节点串起来
(本条路线统一用 gcc -std=c11 -O0 编译)造好的 head 后面接两个。
顺着 next 走一遍
(本条路线统一用 gcc -std=c11 -O0 编译)三个数都在一次遍历里数出来。
🔴 把整条链还干净
(本条路线统一用 gcc -std=c11 -O0 编译)三行搞定:存下 next、还当前、走到 next。让最后那个差值是 0。
Python 为什么不用写「还回去」
同样造三个列表,Python 一句 free 都不用写,因为【0】。
🔴 自动回收的代价是什么
让运行时替你管内存,换来的代价是【0】。
🔴 两边删掉的是同一种东西吗
C 的 free(p) 和 Python 的 del a,删掉的分别是【0】。
C 这边:同一件事要写几句「还」
(本条路线统一用 gcc -std=c11 -O0 编译)三个数组,一块仪表盘: #include <stdio.h> #include <stdlib.h> static int frees = 0; int
🔴 Python 那边读数是几
同样三份数据,同样一个 frees 计数器: frees = 0 # 和 C 那一版摆同一块仪表盘 a = [1, 1] b = [2, 2] c = [3, 3] s = a[0] + b[0]
C 这边:三句一句都别少
(本条路线统一用 gcc -std=c11 -O0 编译)把三块都还回去,顺便把账记上。