goto对资源的释放问题的解决
来源:互联网 发布:手机电脑无线连接软件 编辑:程序博客网 时间:2024/06/05 11:49
Q:一块代码中有大于1的资源的分配时,很容易造成跳过资源的释放;从而导致资源的泄露。
A:利用goto语句的跳转特点可以一定程度上解决这个问题
example:
FILE *f1=open();
if(NULL==f1)
{
goto error1;
}
FILE *f2=open();
if(NULL==f2)
{
goto error2;
}
//如果跳到error2;会先执行error2再执行error1
error2:
if(NULL !=f2)
{
fclose(f2);
}
error1:
if(NULL !=f1)
{
fclose(f1);
}
return;第二种方法,(我觉得更好)
FILE *f1=open();
if(NULL==f1)
{
goto error;
}
FILE *f2=open();
if(NULL==f2)
{
goto error;
}
//如果跳到error2;会先执行error2再执行error1
error:
if(NULL !=f2)
{
fclose(f2);
}
if(NULL !=f1)
{
fclose(f1);
}
return; 0 0
- goto对资源的释放问题的解决
- C#的资源释放问题
- VC++玩转Native Wifi API 3---GOTO在释放资源时的作用
- 插件apk推出,资源释放的问题
- 未释放kafka资源导致的问题
- JDBC:JDBC资源释放的细节问题
- 对Azure二次开发,解决资源“独占访问”的问题
- GDI资源的释放
- 释放资源的时候
- GDI资源的释放
- js资源的释放
- goto语句的“跳跃”问题
- goto语句的“跳跃”问题
- 使用HttpURLConnection时遇到的资源未释放的问题
- 连goto都解决不了的问题, 那就用do while(0)来解决吧!
- 深究跨dll的资源分配和释放问题
- 使用using关键字同时释放多个资源的问题
- 浅谈C#托管程序中资源释放的问题
- 使用SES发邮件
- 别名显示规则
- Intellij idea使用java编写并执行spark程序
- HTTP协议与HTML表单(再谈GET与POST的区别)
- C++ 编写Windows服务
- goto对资源的释放问题的解决
- 调用手机的摄像头,并且返回照片显示在程序界面上.
- Objective-C的hook方案(一): Method Swizzling
- iOS webView 加载文件 及 文件操作
- 【Struts框架】第一节Action-struts访问request等引用方法二
- Bit-map (2) Bloom Filter 和 Counting Bloom Filter
- NAT打洞原理(转)
- python 进程间共享数据 (一)
- 杭电acm2091