do break的妙用

#include <stdio.h>
#include <malloc.h>

int func(int n)
{  //资源的统一申请
    int i = 0;
    int ret = 0;
    int* p = (int*)malloc(sizeof(int) * n);

    do
    {
        if( NULL == p ) break;

        if( n < 0 ) break;

        for(i=0; i<n; i++)
        {
            p[i] = i;
            printf("%d\n", p[i]);
        }

        ret = 1;
    }while(0);
      //资源的统一释放
    free(p);

    return ret;
}

int main()
{
    if( func(10) )
    {
        printf("OK");
    }
    else
    {
        printf("ERROR");
    }
}
时间: 2024-12-21 15:24:24

do break的妙用的相关文章

[ 1011] &lt;&lt;C语言深度剖析&gt;&gt; 测试 TEST

/******************************** **  wzsts<C语言深度剖析>2016 ** **                    ** **     fun1~fun6代表6章节内容 ** **fun10~fun19代表fun1所调用函数 ** **                    ** **     世界因规则而美好     ** ** #if(1)可运行,#if(0)不运行. ** ** Data  Author   PC       ** **16

第7课 循环语句

循环语句分析: do...while语句的循环方式: while语句的循环方式: for语句的循环方式: 三种循环语句的使用对比: do...while 当我们给f1的参数是-100时,结果如下: 这不是我们想要的结果,我们希望实参小于0时,f1函数什么都不做,但是这个do...循环却至少执行了一次do中的语句.对程序进行改进. 在坚持要使用do...while循环的前提下我们只能加一个if判断语句,如下: 在做这样的累加操作的时候,do...while并不适合.我们修改成while循环的方式:

【转载】js 与或运算符 || &amp;&amp; 妙用

js 与或运算符 || && 妙用,可用于精简代码,降低程序的可读性. 首先出个题: 如图: 假设对成长速度显示规定如下: 成长速度为5显示1个箭头: 成长速度为10显示2个箭头: 成长速度为12显示3个箭头: 成长速度为15显示4个箭头: 其他都显示都显示0各箭头. 用代码怎么实现? 差一点的if,else: Js代码 代码如下: var add_level = 0; if(add_step == 5){  add_level = 1; } else if(add_step == 10)

js 与或运算符 || &amp;&amp; 妙用

js 与或运算符 || && 妙用,可用于精简代码,降低程序的可读性. http://www.jb51.net/article/21339.htm 如图:  假设对成长速度显示规定如下: 成长速度为5显示1个箭头: 成长速度为10显示2个箭头: 成长速度为12显示3个箭头: 成长速度为15显示4个箭头: 其他都显示都显示0各箭头. 用代码怎么实现? 两种方法:if 和 switch var add_level = 0; if(add_step == 5){ add_level = 1; }

setTimeout的妙用2——防止循环超时

上个周日,介绍了如何使用setTimeout代替setInterval进行间歇调用,这个周日,继续来讲<JavaScript高级程序设计>这本书里面,对于setTimeout的另一种妙用--防止循环超时 [这是铺垫,为故事的高潮埋下伏笔] JS是单线程的,一个代码块里面的代码,只能按顺序从上到下执行,所以如果中间有一块代码,执行起来非常耗时,就会导致下面的代码无法执行,出现浏览器假死的状态. JS的耗时操作,常见的有两种  1.向服务器发起请求   2.对数组的循环操作  (当然,还有一种,就

!HDU 4334 集合各出一数和为0是否存在-思维、卡时间-(指针的妙用)

题意:有5个集合,集合的大小是n,每一个集合出一个数,问能不能找到五个数的和为0.数据范围:T<=50:n<=200 分析: 暴力枚举是n^5*T,超时,那么就要用一些技巧了. 这里有一个指针的妙用:如何在O(n)的复杂度找A,B,使得A+B==C(A,B分别属于一个数列a,b).做法是先把a,b分别按升序排序,然后一个指针i指向a的首,指针j指向b的尾,判定指针指向的数的和是否==C,若等于则结束查找,若小于,则i++,若大于则 j- -,如果有一个指针已经走到了头还没找到A+B==C,则说

Android实习札记(11)---妙用include解决布局重用问题

Android实习札记(11)---妙用include解决布局重用问题 --转载请注明出处:coder-pig 如果你已经知道include是什么,只是想知道怎么用,使用示例如下: ①布局文件引入layout  <include android:id="@+id/topbar" android:layout_width="match_parent" android:layout_height="wrap_content" layout=&q

【C++基础 03】do...while(0)妙用

我的主题是,有时候知道一些细节会让你写出更好的代码. ============================================ 之前学coocs2d-x的时候,发现有很多do...while(0)的写法,一开始不明白为什么如此写,(起不到循环的作用),然后找了一下资料,发现这东西用处还蛮多的,现在来总结一下: do...while(0)的妙用. 1.避免goto的使用 比如说我们需要在函数中处理一些错误,遇到错误则退出函数,当然退出之前我们需要释放一下资源,比如下面这样子: bo

SharePoint API测试系列——对Recorded Item进行OM Methods操作(委托的妙用)

对Recorded Item动态调用OM Methods进行测试,界面如下: 输入Site的URL,File在SharePoint中的相对URL,并选择OM操作类型,点击Test进行测试.代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.