亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? memalloc.c

?? 一個簡單的視頻會議VC++MFC工程文件
?? C
字號:

/*!
 ************************************************************************
 * \file  memalloc.c
 *
 * \brief
 *    Memory allocation and free helper funtions
 *
 * \author
 *    Main contributors (see contributors.h for copyright, address and affiliation details)
 ************************************************************************
 */

#include <stdlib.h>
#include "memalloc.h"

/*!
 ************************************************************************
 * \brief
 *    Allocate 2D memory array -> unsigned char array2D[rows][columns]
 *
 * \par Output:
 *    memory size in bytes
 ************************************************************************/
// Change 9-Aug-2001 P. List: dont allocate independant row arrays anymore
// but one complete array and move row-pointers to array. Now you can step
// to the next line with an offset of img->width
int get_mem2D(byte ***array2D, int rows, int columns)
{
  int i;

  if((*array2D      = (byte**)calloc(rows,        sizeof(byte*))) == NULL)
    no_mem_exit("get_mem2D: array2D");
  if(((*array2D)[0] = (byte* )calloc(columns*rows,sizeof(byte ))) == NULL)
    no_mem_exit("get_mem2D: array2D");

  for(i=1;i<rows;i++)
    (*array2D)[i] = (*array2D)[i-1] + columns ;

  return rows*columns;
}

/*!
 ************************************************************************
 * \brief
 *    Allocate 2D memory array -> int array2D[rows][columns]
 *
 * \par Output:
 *    memory size in bytes
 ************************************************************************
 */
// same change as in get_mem2Dint
int get_mem2Dint(int ***array2D, int rows, int columns)
{
  int i;

  if((*array2D      = (int**)calloc(rows,        sizeof(int*))) == NULL)
    no_mem_exit("get_mem2Dint: array2D");
  if(((*array2D)[0] = (int* )calloc(rows*columns,sizeof(int ))) == NULL)
    no_mem_exit("get_mem2Dint: array2D");

  for(i=1 ; i<rows ; i++)
    (*array2D)[i] =  (*array2D)[i-1] + columns  ;

  return rows*columns*sizeof(int);
}

/*!
 ************************************************************************
 * \brief
 *    Allocate 2D memory array -> int64 array2D[rows][columns]
 *
 * \par Output:
 *    memory size in bytes
 ************************************************************************
 */
// same change as in get_mem2Dint
int get_mem2Dint64(int64 ***array2D, int rows, int columns)
{
  int i;

  if((*array2D      = (int64**)calloc(rows,        sizeof(int64*))) == NULL)
    no_mem_exit("get_mem2Dint64: array2D");
  if(((*array2D)[0] = (int64* )calloc(rows*columns,sizeof(int64 ))) == NULL)
    no_mem_exit("get_mem2Dint64: array2D");

  for(i=1 ; i<rows ; i++)
    (*array2D)[i] =  (*array2D)[i-1] + columns  ;

  return rows*columns*sizeof(int64);
}


/*!
 ************************************************************************
 * \brief
 *    Allocate 3D memory array -> unsigned char array3D[frames][rows][columns]
 *
 * \par Output:
 *    memory size in bytes
 ************************************************************************
 */
// same change as in get_mem2Dint
int get_mem3D(byte ****array3D, int frames, int rows, int columns)
{
  int  j;

  if(((*array3D) = (byte***)calloc(frames,sizeof(byte**))) == NULL)
    no_mem_exit("get_mem3D: array3D");

  for(j=0;j<frames;j++)
    get_mem2D( (*array3D)+j, rows, columns ) ;

  return frames*rows*columns;
}

/*!
 ************************************************************************
 * \brief
 *    Allocate 3D memory array -> int array3D[frames][rows][columns]
 *
 * \par Output:
 *    memory size in bytes
 ************************************************************************
 */
// same change as in get_mem2Dint
int get_mem3Dint(int ****array3D, int frames, int rows, int columns)
{
  int  j;

  if(((*array3D) = (int***)calloc(frames,sizeof(int**))) == NULL)
    no_mem_exit("get_mem3Dint: array3D");

  for(j=0;j<frames;j++)
    get_mem2Dint( (*array3D)+j, rows, columns ) ;

  return frames*rows*columns*sizeof(int);
}

/*!
 ************************************************************************
 * \brief
 *    Allocate 3D memory array -> int64 array3D[frames][rows][columns]
 *
 * \par Output:
 *    memory size in bytes
 ************************************************************************
 */
// same change as in get_mem2Dint
int get_mem3Dint64(int64 ****array3D, int frames, int rows, int columns)
{
  int  j;

  if(((*array3D) = (int64***)calloc(frames,sizeof(int64**))) == NULL)
    no_mem_exit("get_mem3Dint64: array3D");

  for(j=0;j<frames;j++)
    get_mem2Dint64( (*array3D)+j, rows, columns ) ;

  return frames*rows*columns*sizeof(int64);
}


/*!
 ************************************************************************
 * \brief
 *    Allocate 4D memory array -> int array3D[frames][rows][columns][component]
 *
 * \par Output:
 *    memory size in bytes
 ************************************************************************
 */
// same change as in get_mem2Dint
int get_mem4Dint(int *****array4D, int idx, int frames, int rows, int columns )
{
  int  j;

  if(((*array4D) = (int****)calloc(idx,sizeof(int**))) == NULL)
    no_mem_exit("get_mem4Dint: array4D");

  for(j=0;j<idx;j++)
    get_mem3Dint( (*array4D)+j, frames, rows, columns ) ;

  return idx*frames*rows*columns*sizeof(int);
}

/*!
 ************************************************************************
 * \brief
 *    free 2D memory array
 *    which was alocated with get_mem2D()
 ************************************************************************
 */
void free_mem2D(byte **array2D)
{
  if (array2D)
  {
    if (array2D[0])
      free (array2D[0]);
    else error ("free_mem2D: trying to free unused memory",100);

    free (array2D);
  } else
  {
    error ("free_mem2D: trying to free unused memory",100);
  }
}

/*!
 ************************************************************************
 * \brief
 *    free 2D memory array
 *    which was alocated with get_mem2Dint()
 ************************************************************************
 */
void free_mem2Dint(int **array2D)
{
  if (array2D)
  {
    if (array2D[0]) 
      free (array2D[0]);
    else error ("free_mem2Dint: trying to free unused memory",100);

    free (array2D);

  } else
  {
    error ("free_mem2Dint: trying to free unused memory",100);
  }
}


/*!
 ************************************************************************
 * \brief
 *    free 2D memory array
 *    which was alocated with get_mem2Dint64()
 ************************************************************************
 */
void free_mem2Dint64(int64 **array2D)
{
  if (array2D)
  {
    if (array2D[0]) 
      free (array2D[0]);
    else error ("free_mem2Dint64: trying to free unused memory",100);

    free (array2D);

  } else
  {
    error ("free_mem2Dint64: trying to free unused memory",100);
  }
}


/*!
 ************************************************************************
 * \brief
 *    free 3D memory array
 *    which was alocated with get_mem3D()
 ************************************************************************
 */
void free_mem3D(byte ***array3D, int frames)
{
  int i;

  if (array3D)
  {
    for (i=0;i<frames;i++)
    { 
      free_mem2D(array3D[i]);
    }
   free (array3D);
  } else
  {
    error ("free_mem3D: trying to free unused memory",100);
  }
}

/*!
 ************************************************************************
 * \brief
 *    free 3D memory array 
 *    which was alocated with get_mem3Dint()
 ************************************************************************
 */
void free_mem3Dint(int ***array3D, int frames)
{
  int i;

  if (array3D)
  {
    for (i=0;i<frames;i++)
    { 
      free_mem2Dint(array3D[i]);
    }
   free (array3D);
  } else
  {
    error ("free_mem3D: trying to free unused memory",100);
  }
}


/*!
 ************************************************************************
 * \brief
 *    free 3D memory array 
 *    which was alocated with get_mem3Dint64()
 ************************************************************************
 */
void free_mem3Dint64(int64 ***array3D, int frames)
{
  int i;

  if (array3D)
  {
    for (i=0;i<frames;i++)
    { 
      free_mem2Dint64(array3D[i]);
    }
   free (array3D);
  } else
  {
    error ("free_mem3Dint64: trying to free unused memory",100);
  }
}


/*!
 ************************************************************************
 * \brief
 *    free 4D memory array 
 *    which was alocated with get_mem4Dint()
 ************************************************************************
 */
void free_mem4Dint(int ****array4D, int idx, int frames )
{
  int  j;

  if (array4D)
  {
    for(j=0;j<idx;j++)
      free_mem3Dint( array4D[j], frames) ;
    free (array4D);
  } else
  {
    error ("free_mem4D: trying to free unused memory",100);
  }
}


/*!
 ************************************************************************
 * \brief
 *    Exit program if memory allocation failed (using error())
 * \param where
 *    string indicating which memory allocation failed
 ************************************************************************
 */
void no_mem_exit(char *where)
{
   snprintf(errortext, ET_SIZE, "Could not allocate memory: %s",where);
   error (errortext, 100);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久免费视频.com| 色综合中文字幕国产 | 91天堂素人约啪| 日本不卡在线视频| 国产精品久久国产精麻豆99网站| 欧美午夜在线一二页| 国产成人在线观看免费网站| 午夜电影一区二区三区| 亚洲欧美综合色| 欧美tickling网站挠脚心| 色网综合在线观看| 国产成人精品免费网站| 日韩av电影天堂| 亚洲欧美一区二区三区极速播放 | 在线一区二区观看| 国产高清亚洲一区| 美国毛片一区二区| 亚洲bt欧美bt精品| 亚洲精品国产无天堂网2021| 国产日韩视频一区二区三区| 91麻豆精品国产91久久久| 91视频www| 福利视频网站一区二区三区| 蜜桃久久精品一区二区| 亚洲第一会所有码转帖| 一区二区三区成人在线视频| 国产精品福利一区二区三区| 精品成人a区在线观看| 欧美久久一二三四区| 色婷婷久久久久swag精品| gogogo免费视频观看亚洲一| 国产成人h网站| 国产伦理精品不卡| 狠狠色丁香婷综合久久| 日本欧美肥老太交大片| 日韩电影免费一区| 三级不卡在线观看| 五月婷婷综合在线| 亚洲国产精品久久久久婷婷884| 国产精品大尺度| 国产精品天干天干在线综合| 久久久久久久久久久黄色| 欧美tickle裸体挠脚心vk| 在线不卡a资源高清| 在线综合视频播放| 日韩欧美一二三区| 欧美成人精品福利| 精品国产乱码久久久久久蜜臀 | 日韩写真欧美这视频| 91精品婷婷国产综合久久竹菊| 欧美日韩在线直播| 91精品欧美一区二区三区综合在| 91精品国产欧美一区二区成人 | 国产精品996| 成人动漫一区二区三区| aaa亚洲精品| 在线免费亚洲电影| 欧美日韩aaa| 精品国精品国产尤物美女| 久久综合给合久久狠狠狠97色69| 欧美大片一区二区| 久久久99精品免费观看| 国产欧美日韩亚州综合| 国产精品欧美一级免费| 依依成人精品视频| 五月婷婷激情综合| 激情欧美一区二区三区在线观看| 国产精品一二三四区| 床上的激情91.| 色老汉一区二区三区| 91精品国产色综合久久ai换脸| 精品少妇一区二区三区日产乱码| 久久久精品国产免费观看同学| 国产精品欧美经典| 亚洲成a人在线观看| 国内成人精品2018免费看| 北条麻妃一区二区三区| 欧美亚洲自拍偷拍| 久久综合久色欧美综合狠狠| 最新不卡av在线| 午夜精品视频在线观看| 国产精一区二区三区| 色琪琪一区二区三区亚洲区| 欧美一区二区二区| 国产精品白丝在线| 亚洲最大色网站| 久久69国产一区二区蜜臀| 波多野结衣一区二区三区| 欧美久久久一区| 国产欧美日韩麻豆91| 一片黄亚洲嫩模| 国内一区二区视频| 色哟哟亚洲精品| 久久欧美中文字幕| 亚洲黄色在线视频| 国模无码大尺度一区二区三区| 91尤物视频在线观看| 日韩欧美电影一二三| 亚洲色图19p| 韩国av一区二区| 精品视频999| 欧美国产日本韩| 日韩国产精品久久久| 99re热视频精品| 久久先锋影音av鲁色资源网| 婷婷开心激情综合| 91免费小视频| 国产欧美精品一区| 黄色日韩网站视频| 欧美一级搡bbbb搡bbbb| 亚洲尤物视频在线| 99视频精品在线| 欧美高清在线一区二区| 精品中文av资源站在线观看| 欧美亚洲一区二区在线| 亚洲三级在线播放| 福利一区二区在线| 国产亚洲精品bt天堂精选| 麻豆成人免费电影| 欧美精品 国产精品| 亚洲国产欧美日韩另类综合| 91香蕉国产在线观看软件| 久久免费精品国产久精品久久久久| 亚洲成a天堂v人片| 色乱码一区二区三区88| 久久久久国产免费免费| 日本不卡一二三| 欧美丰满少妇xxxxx高潮对白 | 91视频精品在这里| 日韩一级免费观看| 亚洲成a人在线观看| av午夜一区麻豆| 久久久久久夜精品精品免费| 视频一区国产视频| 欧美亚洲动漫制服丝袜| 国产精品久久网站| 国产99久久久国产精品免费看 | 午夜私人影院久久久久| 91啪九色porn原创视频在线观看| 国产亚洲欧洲997久久综合| 日韩精品每日更新| 91精品国产高清一区二区三区| 亚洲男同1069视频| 99免费精品视频| 国产精品久久久久久亚洲伦 | 成人美女视频在线看| 国产欧美综合在线| 韩国精品久久久| 日韩欧美电影一二三| 全部av―极品视觉盛宴亚洲| 91福利精品视频| 天天影视色香欲综合网老头| 欧美日韩久久不卡| 亚洲国产精品一区二区尤物区| 色综合天天视频在线观看 | 一区二区日韩av| 色94色欧美sute亚洲线路一久| 国产欧美精品一区| 成人黄色小视频| 国产精品福利av| 99精品偷自拍| 亚洲欧美日韩在线播放| 在线电影国产精品| 奇米色一区二区三区四区| 91精品国产福利| 久久狠狠亚洲综合| 555夜色666亚洲国产免| 韩国成人福利片在线播放| 久久蜜桃av一区精品变态类天堂 | ●精品国产综合乱码久久久久 | k8久久久一区二区三区 | 91丨porny丨中文| 三级亚洲高清视频| 欧美tk—视频vk| 成人性视频免费网站| 亚洲色图视频网站| 91久久免费观看| 久久超碰97中文字幕| 中文字幕欧美日韩一区| www.欧美色图| 亚洲国产精品久久一线不卡| 久久久夜色精品亚洲| 99久久er热在这里只有精品15| 亚洲午夜久久久久久久久电影院 | 亚洲一区在线观看网站| 日韩一卡二卡三卡国产欧美| 国产又粗又猛又爽又黄91精品| 夜夜爽夜夜爽精品视频| 欧美成人vr18sexvr| 丰满岳乱妇一区二区三区 | 蜜臀a∨国产成人精品| 精品日韩在线观看| 色婷婷av一区二区三区gif| 日韩av网站免费在线| 久久久久88色偷偷免费| 在线免费观看日本欧美| 五月天国产精品| 怡红院av一区二区三区| 久久综合九色综合欧美亚洲| 色哟哟精品一区|