动态内存的语法并不难,难的是维护一组始终成立的约束:访问不能越界、对象必须仍然存活、资源只能释放一次,并且最终必须有人释放。
先建立"合法访问"的四个条件
通过指针访问对象之前,至少确认:
- 指针不是空指针;
- 指针指向的对象仍在生命周期内;
- 访问范围没有越过对象边界;
- 访问方式与对象类型、对齐要求相容。
只检查 p != NULL 远远不够。非空地址也可能悬空、越界或类型错误。
2026/7/6大约 10 分钟
动态内存的语法并不难,难的是维护一组始终成立的约束:访问不能越界、对象必须仍然存活、资源只能释放一次,并且最终必须有人释放。
通过指针访问对象之前,至少确认:
只检查 p != NULL 远远不够。非空地址也可能悬空、越界或类型错误。