把中间值都摆出来

(本条路线统一用 gcc -std=c11 -O0 -Wall 编译)⚠️ 判题机上跑不了 gdb,所以这一节练的是**同一件事的另一半**:**把 gdb 会告诉你的东西,自己在程序里打出来。**会读会打,换到有 gdb 的地方一样用。

开始练习 →

⚠️ 自己做一份调用栈

(本条路线统一用 gcc -std=c11 -O0 -Wall 编译)三层函数,记下最深进到第几层。

开始练习 →

🔴 让它别崩,改成交回一个能看的值

(本条路线统一用 gcc -std=c11 -O0 -Wall 编译)三次调用里有两次是坏的。挡住它们,交回 -1。

开始练习 →

⚠️ 把「挡住了几次」也数出来

(本条路线统一用 gcc -std=c11 -O0 -Wall 编译)挡住的都交回 -1,数一数有几次。

开始练习 →

🔴 `strcpy` 最容易出的事是什么

strcpy(buf, s) 最常见的事故是【0】。

开始练习 →

⚠️ 两个转数函数该用哪个

把命令行参数转成整数,更该用 strtol,因为【0】。

开始练习 →

几个最常用的字符串函数

(本条路线统一用 gcc -std=c11 -O0 -Wall 编译)长度、拷贝、拼接、比较: #include <stdio.h> #include <string.h> int main(void) {

开始练习 →

🔴 `snprintf` 交回的到底是几

(本条路线统一用 gcc -std=c11 -O0 -Wall 编译)缓冲区只有 5 个字节,要写的却更长: #include <stdio.h> #include <string.h> int main(void

开始练习 →

拷一份,再接一段

(本条路线统一用 gcc -std=c11 -O0 -Wall 编译)buf 有 16 个字节,够用。

开始练习 →

⚠️ 用能报截断的那个写法

(本条路线统一用 gcc -std=c11 -O0 -Wall 编译)缓冲区只有 5 个字节,要写的内容比它长。

开始练习 →