1. 初始化:
1)定义指针或重用时是否进行正确初始化
2)使用结构体之前是否进行初始化
2. 有效性:
1)空指针检查
2)迭代器检查,是否判定非end()
3)数据越界检查,索引是否在合法范围内
4)内存越界检查,是否有越界操作可能性
5)协议收到参数是否做了有效性检查,防外挂
3. 释放:
1)释放指针时,需要设置指针为空[SAFE_DELETE]
2)释放指针时,需要从相关管理器中删除
4. 删除:
1)避免在遍历、循环操作过程中删除对象
5. 内存泄漏
1)有new就一定要有delete
2)有new[]就一定要有delete[]
3)有insert()就一定要erase()
4)尽量使用智能指针unique_ptr和shared_ptr
6. 其它
1)时间比较必须用统一的获取时间函数
2)收到协议是否可能被篡改
3)关键流程是否有日志记录
4)给奖励之前是否做了消耗检查,且消耗必须在给予奖励之前