三个关系量
(本条路线统一用 gcc -std=c11 -O0 编译)三个数都是"关系",跟这台机器上 int 有几个字节无关: #include <stdio.h> int main(void) { int
🔴 长度是在哪一刻丢掉的
(本条路线统一用 gcc -std=c11 -O0 编译)同一个数组,一个在外面数,一个在函数里数: #include <stdio.h> /* 数组一传进函数就"退化"成指针,长度在这里已经丢了 */ i
用指针走一遍,不用下标
(本条路线统一用 gcc -std=c11 -O0 编译)循环条件写对,让指针从头走到尾。
⚠️ 三个都要用指针算出来
(本条路线统一用 gcc -std=c11 -O0 编译)不许用下标,三个数都用 p、q 算。
`malloc` 要来的那块地方,什么时候没
用 malloc 要来一块内存,它一直在,直到【0】。
⚠️ `malloc` 该要多少,怎么写
要装下 4 个 int,malloc 的括号里该写的是【0】。
🔴 `malloc` 可能失败吗
系统给不出这块内存时,malloc 会【0】。
⚠️ 同一块内存 `free` 两次会怎样
对同一个指针连着调用两次 free,结果是【0】。
要一块、用一块、还一块
(本条路线统一用 gcc -std=c11 -O0 编译)程序自己数着"要了几次、还了几次": #include <stdio.h> #include <stdlib.h> static int
要一块装得下四个 int 的内存
(本条路线统一用 gcc -std=c11 -O0 编译)把 malloc 那一句补上,字节数别自己算。