魔兽3:开战总结(程设大作业c++
写写改改好几天的魔兽3终于过啦(虽然还有4,想想就觉得写不出
AC的蓝就是我心中的碧海蓝天,耿耿星河
即使半夜2:04我也要写总结反思(在没人认识我的地方得瑟
1.对指针的掌握非常不牢固
关于nullptr和delete用法
#include<iostream>
using namespace std;
int main(){
int * pA = new int(10);
int * pB = pA;
delete pA;
pA = nullptr;
cout << *pB <<' '<< pB << endl;
if(pB){
delete pB;
pB = nullptr;
}
return 0;
}
(1) pA和pB指向同一地址(内存)
(2)delete pA + pA = nullptr 是个好习惯
(3)对pA的操作并没有影响到pB, 对于pB的访问是正常的
(4)if语句内部出错
分析:只有new出来的空间才需要手动delete释放,其他指针指向的空间进程 自动释放,倘若使用delete相当于二次释放
报错malloc: *** error for object 0x101c004a0: pointer being freed was not allocated
2.对于这种输出行数多,复杂的题目,善用文档比较
最后卡了好几个小时的WA竟然是因为输出多了单撇号,这种差别即使在文档比较结果中也极容易忽略。输出尽量复制题目中的,切记
3.对于边界的限定多考虑一下,一不小心就会数组越界
4.静心一行行修改文档比较中不同的部分