1. 线下学习准备

<aside> 💡 有余力的同学可以一起完善看看有什么好的学习材料补充~

</aside>

学习材料

<aside> 😀 注意,从C语言开始,这里的学习需要动手! 为了有更好的收获,建议尽快启动(比如周三前),最好不要在讨论会前临时抱佛脚 如果没赶上进度,可以按自己节奏,看往期回顾的材料,理论上每一课预留1天消化即可

</aside>

本周内容要点

  1. 调试工具、技巧

    1. 检测内存泄漏的工具:vagrind

      https://s3-us-west-2.amazonaws.com/secure.notion-static.com/3e942ff1-ba33-4c85-8a4a-e26202235abf/Untitled.png

    2. 小黄鸭调试法

      https://s3-us-west-2.amazonaws.com/secure.notion-static.com/4dee098c-40fe-44a9-b846-24c52b722e1c/Untitled.png

  2. struct、链表

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/4fd8b270-d8e4-4096-855b-b055c6de1083/Untitled.png

    struct node 的命名

  3. 树结构

    1. 二叉树,binary tree
    2. 字典树,trie

2. 线上讨论

时间:7月31日晚 8-10 点

录像:https://www.bilibili.com/video/BV1q64y1W7aT/

话题扩展

  1. SedationH: 关于计算机在疫情期间的应用

    1. johnbanq: tracing、隐私话题
    2. 安全与隐私的博弈
    3. 指标是否可信
  2. 学习难点:肌肉记忆把指针用熟悉

  3. 关于小黄鸭调试法与 johnbanq 说到的 fits in your head 与全局观

    <aside> 📎 johnbanq:

  4. 阿白:我感觉学习一门新技术,如果有合适的场景去使用这个新技术解决问题来入门会掌握的比较快。

  5. Bai 提问:在heap中自己申请内存定义变量 int *a = malloc(sizeof(int)); *a = 23 和在 satck中直接定义一个临时变量int a = 23 。 在实际应用中有什么区别?比如我编写一个桌面客户端程序,要使用一个int 变量的话,这两者有什么区别?

    1. 阿白:heap 是全局的,在函数栈中定义通常会随着函数生命周期结束被回收
    2. johnbanq:变量生命周期的问题;栈,函数退出即释放;堆,手动设工程
      1. 函数返回指针的场景
      2. 性能区别