死循环, break与return
来源:互联网 发布:js amd cmd区别 编辑:程序博客网 时间:2024/05/21 21:02
死循环, break与return
看下面函数
很明显, 这个函数中, delete [] pChar;一定要跟着return.
这个函数的缺点是: 1. 出口太多. 2. 由于出口太多, 导致好多重复代码(delete [] pChar;)
像这种情况, 在C++中一定经常遇到.
缺点2. 由于出口太多, 导致好多重复代码(delete [] pChar;)
这容易造成的问题是你很容易忘记这个释放资源代码. 容易犯错.
解决方法有很多, 例如使用智能指针.
缺点1. 出口太多.
出口太多可能是因为你的函数的功能本身就需要很多的判断, 退出等. 这无法避免.
但是做到在一个地方return也是可以的.
例如使用 goto.
今天突然发现可以以这样(巧妙使用死循环和break)
其实适合就好.
看下面函数
int XXXXX(){char* pChar = new char[50];if(xxx){delete [] pChar;return 1;}...if(xxx){delete [] pChar;return 0;}delete [] pChar;return 2;}
很明显, 这个函数中, delete [] pChar;一定要跟着return.
这个函数的缺点是: 1. 出口太多. 2. 由于出口太多, 导致好多重复代码(delete [] pChar;)
像这种情况, 在C++中一定经常遇到.
缺点2. 由于出口太多, 导致好多重复代码(delete [] pChar;)
这容易造成的问题是你很容易忘记这个释放资源代码. 容易犯错.
解决方法有很多, 例如使用智能指针.
缺点1. 出口太多.
出口太多可能是因为你的函数的功能本身就需要很多的判断, 退出等. 这无法避免.
但是做到在一个地方return也是可以的.
例如使用 goto.
int XXXXX(){char* pChar = new char[50];if(xxx){goto gogogo;}...if(xxx){goto gogogo;}gogogo:delete [] pChar;return 2;}
今天突然发现可以以这样(巧妙使用死循环和break)
int XXXXX(){char* pChar = 0;do{pChar = new char[50];if(xxx){break;}...if(xxx){break;}}while(false);delete [] pChar;return 2;}
其实适合就好.
- 死循环, break与return
- break与continue,return结束循环区别
- 循环中的continue、 break、 return
- return 与 break continue
- continue,break与return
- jQeruy 里each循环中的break与continue的替代物return false;和return true;
- return break在循环中的使用
- 控制循环结构: break、continue和return
- js跳出循环:break 、continue 、return
- 循环语句中的break、continue、return用法
- Java控制循环语句break,continue,return
- 循环中break,continue,return的区别
- Java跳出循环语句break、continue、return
- JavaScript中break continue return 结束循环。
- while循环中,break,continue,return
- return与break的区别
- return与break的区别
- return与break的区别
- Illustrator画出可爱驯鹿头像
- 再谈U-Boot的设备管理框架
- Oracle实例恢复——说说前滚和回滚
- 4.12 《硬啃设计模式》 第29章 行为型设计模式小结
- 龙源期刊网的账号密码会员(长期有效)
- 死循环, break与return
- 用两个栈实现队列
- 员工的离职原因
- python NameError: name 'raw_input' is not defined
- 深入浅出分析Linux操作系统内核
- RooyeeMessenger 2.3.1 源码加入VclSkin 5.60编译的问题
- sudo笔记
- Android开发之如何编写高效的Android代码?
- 部署RAC 2.7.1 安装Grid Infrastructure