• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
LVlvLUP
博客园    首页    新随笔    联系   管理    订阅  订阅

二维空间

1,在堆上申请二位空间

     1.1二维空间,并不一定就是二维数组,具有数组的访问形式。但己经远远不是数组的定义了

     1.2二级指针做返回值输出申请不连续的二维空间

     void **Myarry2(int base,int row,int line)

{

    void**p = (void **)malloc(sizeof(void*)*row);

    for(int i = 0;i<row;i++)

    {

        p[i]=(void *)malloc(base*line);

    }

    return p;

}

  1.3三级指针做参数输出

  void Myarry3(void ***p, int base,int row, int line)

{

    *p = (void **)malloc(sizeof(void *)*row);

    for(int i = 0;i<row;i++)

    {

        (*p)[i] = (void*)malloc(base*line);//(*p)对p进行降指

    }

    return 0;

}

 

    1.4对以上空间的释放

void Freearry(void **p,int row)

{

    for(int i =0;i<row;i++)

    {

        free(p[i]);

    }

    free(p);

    return 0;

}

     1.5申请一个连续的二维空间

   void **Mymalloc(int base,int row,int line)

{

    void **p = (void **)malloc(sizeof(void*)*row);

    void *pa=(void*) malloc(base*line*row);

    int (*arry)[line] =pa;

    for(int i =0;i<row;i++)

    {

        p[i] = arry++;

    }

    return p;

}

释放空间

void FreeArry(void **p)

{

    free(p[0]);

    free(p);

    return 0;

}

posted @ 2015-09-17 20:17  --天行健地势坤--  阅读(312)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3