03 - Pointers and GDB
03 - 指针 与 GDB
学习自主学习。自主阅读技术文档,很重要。
1. 指针
swap函数引出指针的必要性。老生常谈了。指针传递并非传递副本。
1.1. 指针作为函数参数
当函数结束的时候,计算机会忘记当时因函数执行分配的内存是用来干嘛的了。这不意味着他会被赋予 NULL 值,或者用 0 值覆盖,又或者被清空。
1.2. 指针传值
指针...地址...指针...地址,初学者的噩梦。
2. the Greatest "BUG"
CS 世界 BUG 无处不在。我们不能避免,但我们可以为此做些预备。
栈错误。包括变量未初始化。计算机会遗忘内存的一些内容。需要时时刻刻下达对应指令。
内存泄漏
2.1. GDB 调试
通过 GDB 找出程序在哪一步开始不符合你的预期。
2.2. 趁机学一下...
又是我的知识盲区。
3. 穿插
3.1. CS50 开源库
C 语言的开源特性使得我们可以使用网上更新的动态函数库。
3.2. malloc
动态内存分配
malloc
动态内存分配要 Free,如果长久不 Free的话程序运行非常画满,效率变得底下。
3.3. relloc
relloc
自动 Free
3.4. 结构体
一种包含好几种类型数据的类型...
讲的很细......每次都有结合和callback...遥遥领先某电专。
3.5. 判断分支的布尔值
可以与输入输出函数结合作为提升程序健壮性的工具。
3.6. 文件输入输出
fprintf
将输出打到文件中,而不是屏幕上
sscanf
等等一些基本的标准输入输出
3.7. 交互设备
键盘输入、屏幕输出、文件输入 & 输出
Last updated