本文整理汇总了C++中MALLOCARRAY函数的典型用法代码示例。如果您正苦于以下问题:C++ MALLOCARRAY函数的具体用法?C++ MALLOCARRAY怎么用?C++ MALLOCARRAY使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了MALLOCARRAY函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: srf_img_init
static void
srf_img_init(struct srf_img * const imgP,
uint16_t const width,
uint16_t const height) {
struct srf_img_header * const headerP = &imgP->header;
struct srf_img_alpha * const alphaP = &imgP->alpha;
struct srf_img_data * const dataP = &imgP->data;
headerP->_ints[0] = 0;
headerP->_ints[1] = 16;
headerP->_ints[2] = 0;
headerP->height = height;
headerP->width = width;
headerP->_bytes[0] = 16;
headerP->_bytes[1] = 8;
headerP->line_len = width * 2;
headerP->zeros = 0;
alphaP->type = 11;
alphaP->data_len = height * width;
MALLOCARRAY(alphaP->data, alphaP->data_len);
if (!alphaP->data)
pm_error("Could not allocate buffer for %u bytes of alpha",
alphaP->data_len);
dataP->type = 1;
dataP->data_len = height * width * 2;
MALLOCARRAY(dataP->data, dataP->data_len / 2);
if (!dataP->data)
pm_error("Could not allocation buffer for %u units of data",
dataP->data_len);
}
开发者ID:chneukirchen,项目名称:netpbm-mirror,代码行数:35,代码来源:srf.c
示例2: openFiles
static void
openFiles(struct CmdlineInfo const cmdline,
unsigned int * const fileCtP,
struct pam ** const imgPamP,
const char *** const namesP) {
unsigned int fileCt;
struct pam * imgPam;
const char ** names;
fileCt = cmdline.nFiles > 0 ? cmdline.nFiles : 1;
MALLOCARRAY(imgPam, fileCt);
MALLOCARRAY(names, fileCt);
if (!imgPam || !names)
pm_error("out of memory");
if (cmdline.nFiles > 0) {
unsigned int i;
for (i = 0; i < cmdline.nFiles; ++i) {
imgPam[i].file = pm_openr(cmdline.inFileName[i]);
names[i] = strdup(cmdline.inFileName[i]);
}
} else {
imgPam[0].file = stdin;
names[0] = strdup("stdin");
}
*fileCtP = fileCt;
*imgPamP = imgPam;
*namesP = names;
}
开发者ID:chneukirchen,项目名称:netpbm-mirror,代码行数:34,代码来源:pnmmontage.c
示例3: findpack
static void
findpack(struct pam * const imgs,
unsigned int const imgCt,
Coord ** const coordsP,
unsigned int const quality,
unsigned int const qfactor) {
Coord * coords; /* malloc'ed array */
unsigned int minarea;
unsigned int i;
unsigned int rdiv;
unsigned int cdiv;
Rectangle * current; /* malloc'ed array */
unsigned int z;
Coord c;
MALLOCARRAY(coords, imgCt);
if (!coords)
pm_error("Out of memory allocating %u-element coords array", imgCt);
z = UINT_MAX; /* initial value */
c.x = 0; c.y = 0; /* initial value */
if (quality > 1) {
unsigned int realMinarea;
for (realMinarea = i = 0; i < imgCt; ++i)
realMinarea += imgs[i].height * imgs[i].width;
minarea = realMinarea * qfactor / 100;
} else
minarea = UINT_MAX - 1;
/* It's relatively easy to show that, if all the images
* are multiples of a particular size, then a best
* packing will always align the images on a grid of
* that size.
*
* This speeds computation immensely.
*/
for (rdiv = imgs[0].height, i = 1; i < imgCt; ++i)
rdiv = gcf(imgs[i].height, rdiv);
for (cdiv = imgs[0].width, i = 1; i < imgCt; ++i)
cdiv = gcf(imgs[i].width, cdiv);
MALLOCARRAY(current, imgCt);
for (i = 0; i < imgCt; ++i) {
current[i].size.x = imgs[i].width;
current[i].size.y = imgs[i].height;
}
recursefindpack(current, c, coords, minarea, &z, 0, imgCt, cdiv, rdiv,
quality, qfactor);
free(current);
*coordsP = coords;
}
开发者ID:chneukirchen,项目名称:netpbm-mirror,代码行数:58,代码来源:pnmmontage.c
示例4: newRGBMapData
static void
newRGBMapData(RGBMap * const rgbP,
unsigned int const size) {
rgbP->used = 0;
rgbP->size = size;
rgbP->compressed = FALSE;
MALLOCARRAY(rgbP->red, size);
MALLOCARRAY(rgbP->grn, size);
MALLOCARRAY(rgbP->blu, size);
if (rgbP->red == NULL || rgbP->grn == NULL || rgbP->blu == NULL)
pm_error("Out of memory allocating %u pixels", size);
}
开发者ID:Eleanor66613,项目名称:CS131,代码行数:14,代码来源:image.c
示例5: findpack
static void
findpack(struct pam *imgs, int n, coord *coords)
{
int minarea;
int i;
int rdiv;
int cdiv;
int minx = -1;
int miny = -1;
coord *current;
coord *set;
int z = INT_MAX;
coord c = { 0, 0 };
if (quality > 1)
{
for (minarea = i = 0; i < n; ++i)
minarea += imgs[i].height * imgs[i].width,
minx = imax(minx, imgs[i].width),
miny = imax(miny, imgs[i].height);
minarea = minarea * qfactor / 100;
}
else
{
minarea = INT_MAX - 1;
}
/* It's relatively easy to show that, if all the images
* are multiples of a particular size, then a best
* packing will always align the images on a grid of
* that size.
*
* This speeds computation immensely.
*/
for (rdiv = imgs[0].height, i = 1; i < n; ++i)
rdiv = gcd(imgs[i].height, rdiv);
for (cdiv = imgs[0].width, i = 1; i < n; ++i)
cdiv = gcd(imgs[i].width, cdiv);
MALLOCARRAY(current, n);
MALLOCARRAY(set, n);
for (i = 0; i < n; ++i)
set[i].x = imgs[i].width,
set[i].y = imgs[i].height;
recursefindpack(current, c, set, coords, minarea, &z, 0, n, cdiv, rdiv);
}
开发者ID:cjd8363,项目名称:Global-Illum,代码行数:48,代码来源:pnmmontage.c
示例6: ppmd_read_font
void
ppmd_read_font(FILE * const ifP,
const struct ppmd_font ** const fontPP) {
unsigned int relativeCodePoint;
struct ppmd_glyph * glyphTable;
struct ppmd_font * fontP;
MALLOCVAR(fontP);
if (fontP == NULL)
pm_error("Insufficient memory for font header");
readFontHeader(ifP, &fontP->header);
MALLOCARRAY(glyphTable, fontP->header.characterCount);
if (glyphTable == NULL)
pm_error("Insufficient memory to store %u characters",
fontP->header.characterCount);
for (relativeCodePoint = 0;
relativeCodePoint < fontP->header.characterCount;
++relativeCodePoint) {
readCharacter(ifP, &glyphTable[relativeCodePoint]);
}
fontP->glyphTable = glyphTable;
*fontPP = fontP;
}
开发者ID:Eleanor66613,项目名称:CS131,代码行数:28,代码来源:ppmdfont.c
示例7: analyzeDistribution
static void
analyzeDistribution(struct pam * const inpamP,
bool const verbose,
const unsigned int ** const histogramP,
struct range * const rangeP) {
/*----------------------------------------------------------------------------
Find the distribution of the sample values -- minimum, maximum, and
how many of each value -- in input image *inpamP, whose file is
positioned to the raster.
Return the minimum and maximum as *rangeP and the frequency
distribution as *histogramP, an array such that histogram[i] is the
number of pixels that have sample value i.
Assume the file is positioned to the raster upon entry and leave
it positioned at the same place.
-----------------------------------------------------------------------------*/
unsigned int row;
tuple * inrow;
tuplen * inrown;
unsigned int * histogram; /* malloced array */
unsigned int i;
pm_filepos rasterPos; /* Position in input file of the raster */
pm_tell2(inpamP->file, &rasterPos, sizeof(rasterPos));
inrow = pnm_allocpamrow(inpamP);
inrown = pnm_allocpamrown(inpamP);
MALLOCARRAY(histogram, inpamP->maxval+1);
if (histogram == NULL)
pm_error("Unable to allocate space for %lu-entry histogram",
inpamP->maxval+1);
/* Initialize histogram -- zero occurrences of everything */
for (i = 0; i <= inpamP->maxval; ++i)
histogram[i] = 0;
initRange(rangeP);
for (row = 0; row < inpamP->height; ++row) {
unsigned int col;
pnm_readpamrow(inpamP, inrow);
pnm_normalizeRow(inpamP, inrow, NULL, inrown);
for (col = 0; col < inpamP->width; ++col) {
++histogram[inrow[col][0]];
addToRange(rangeP, inrown[col][0]);
}
}
*histogramP = histogram;
pnm_freepamrow(inrow);
pnm_freepamrown(inrown);
pm_seek2(inpamP->file, &rasterPos, sizeof(rasterPos));
if (verbose)
pm_message("Pixel values range from %f to %f",
rangeP->min, rangeP->max);
}
开发者ID:chneukirchen,项目名称:netpbm-mirror,代码行数:60,代码来源:pamthreshold.c
示例8: pamd_fill_create
struct fillobj *
pamd_fill_create(void) {
fillobj * fillObjP;
struct fillState * stateP;
MALLOCVAR(fillObjP);
if (fillObjP == NULL)
pm_error("out of memory allocating a fillhandle");
MALLOCVAR(stateP);
if (stateP == NULL)
pm_error("out of memory allocating a fillhandle");
stateP->n = 0;
stateP->size = SOME;
MALLOCARRAY(stateP->coords, stateP->size);
if (stateP->coords == NULL)
pm_error("out of memory allocating a fillhandle");
stateP->curedge = 0;
fillObjP->stateP = stateP;
/* Turn off line clipping. */
/* UGGH! We must eliminate this global variable */
oldclip = pamd_setlineclip(0);
return fillObjP;
}
开发者ID:chneukirchen,项目名称:netpbm-mirror,代码行数:29,代码来源:libpamd.c
示例9: newRGBImage
Image *
newRGBImage(unsigned int const width,
unsigned int const height,
unsigned int const depth) {
unsigned int const pixlen = depth > 0 ? (depth + 7) / 8 : 1;
/* Special case for "zero" depth image, which is sometimes
interpreted as "one color"
*/
unsigned int const numcolors = depthToColors(depth);
Image * imageP;
MALLOCVAR_NOFAIL(imageP);
imageP->type = IRGB;
newRGBMapData(&imageP->rgb, numcolors);
imageP->width = width;
imageP->height = height;
imageP->depth = depth;
imageP->pixlen = pixlen;
if (UINT_MAX / width / height < pixlen)
pm_error("Image dimensions %u x %u x %u are too big to compute.",
width, height, pixlen);
MALLOCARRAY(imageP->data, width * height * pixlen);
if (imageP->data == NULL)
pm_error("Unable to allocate %u x %u x %u raster array",
width, height, pixlen);
return imageP;
}
开发者ID:Eleanor66613,项目名称:CS131,代码行数:31,代码来源:image.c
示例10: newBitImage
Image *
newBitImage(unsigned int const width,
unsigned int const height) {
unsigned int const linelen = (width + 7) / 8;
Image * imageP;
MALLOCVAR_NOFAIL(imageP);
imageP->type = IBITMAP;
newRGBMapData(&imageP->rgb, 2);
imageP->rgb.red[0] = imageP->rgb.grn[0] = imageP->rgb.blu[0] = 65535;
imageP->rgb.red[1] = imageP->rgb.grn[1] = imageP->rgb.blu[1] = 0;
imageP->rgb.used = 2;
imageP->width = width;
imageP->height = height;
imageP->depth = 1;
if (UINT_MAX / linelen < height)
pm_error("Image dimensions too big to compute: %u x %u",
linelen, height);
MALLOCARRAY(imageP->data, linelen * height);
if (imageP->data == NULL)
pm_error("Out of memory allocating array of %u x %u", linelen, height);
return imageP;
}
开发者ID:Eleanor66613,项目名称:CS131,代码行数:29,代码来源:image.c
示例11: newTrueImage
Image *
newTrueImage(unsigned int const width,
unsigned int const height) {
unsigned int const pixlen = 3;
Image * imageP;
MALLOCVAR_NOFAIL(imageP);
imageP->type = ITRUE;
imageP->rgb.used = 0;
imageP->rgb.size = 0;
imageP->width = width;
imageP->height = height;
imageP->depth = 24;
imageP->pixlen = 3;
if (UINT_MAX / width / height < pixlen)
pm_error("Image dimensions %u x %u x %u are too big to compute.",
width, height, pixlen);
MALLOCARRAY(imageP->data, width * height * pixlen);
if (imageP->data == NULL)
pm_error("Unable to allocate %u x %u x %u raster array",
width, height, pixlen);
return imageP;
}
开发者ID:Eleanor66613,项目名称:CS131,代码行数:27,代码来源:image.c
示例12: createLongOptsArray
static struct optionx *
createLongOptsArray(struct optionDesc * const optionDescArray,
unsigned int const numOptions) {
struct optionx * longopts;
MALLOCARRAY(longopts, numOptions+1);
if (longopts != NULL) {
unsigned int i;
for (i = 0; i < numOptions; ++i) {
longopts[i].name = optionDescArray[i].name;
/* If the option takes a value, we say it is optional even
though it never is. That's because if we say it is
mandatory, getopt_long_only() pretends it doesn't even
recognize the option if the user doesn't give a value.
We prefer to generate a meaningful error message when
the user omits a required option value.
*/
longopts[i].has_arg =
optionDescArray[i].type == OPTTYPE_FLAG ?
no_argument : optional_argument;
longopts[i].flag = NULL;
longopts[i].val = i;
}
longopts[numOptions].name = 0;
longopts[numOptions].has_arg = 0;
longopts[numOptions].flag = 0;
longopts[numOptions].val = 0;
}
return longopts;
}
开发者ID:BehnamEmamian,项目名称:openholdembot,代码行数:32,代码来源:cmdline_parser.c
示例13: ppm_writeppmrowraw
static void
ppm_writeppmrowraw(FILE * const fileP,
const pixel * const pixelrow,
unsigned int const cols,
pixval const maxval ) {
unsigned int const bytesPerSample = maxval < 256 ? 1 : 2;
unsigned int const bytesPerRow = cols * 3 * bytesPerSample;
unsigned char * rowBuffer;
ssize_t rc;
MALLOCARRAY(rowBuffer, bytesPerRow);
if (rowBuffer == NULL)
pm_error("Unable to allocate memory for row buffer "
"for %u columns", cols);
if (maxval < 256)
format1bpsRow(pixelrow, cols, rowBuffer);
else
format2bpsRow(pixelrow, cols, rowBuffer);
rc = fwrite(rowBuffer, 1, bytesPerRow, fileP);
if (rc < 0)
pm_error("Error writing row. fwrite() errno=%d (%s)",
errno, strerror(errno));
else if (rc != bytesPerRow)
pm_error("Error writing row. Short write of %u bytes "
"instead of %u", rc, bytesPerRow);
free(rowBuffer);
}
开发者ID:Eleanor66613,项目名称:CS131,代码行数:34,代码来源:libppm2.c
示例14: xmlrpc_authcookie_set
void
xmlrpc_authcookie_set(xmlrpc_env *const envP,
const char *const username,
const char *const password) {
char *unencoded;
xmlrpc_mem_block *token;
XMLRPC_ASSERT_ENV_OK(envP);
XMLRPC_ASSERT_PTR_OK(username);
XMLRPC_ASSERT_PTR_OK(password);
/* Create unencoded string/hash. */
MALLOCARRAY(unencoded, (strlen(username) + strlen(password) + 1 + 1));
sprintf(unencoded, "%s:%s", username, password);
/* Create encoded string. */
token = xmlrpc_base64_encode_without_newlines(
envP, (unsigned char *) unencoded, strlen(unencoded));
if (!envP->fault_occurred) {
/* Set HTTP_COOKIE_AUTH to the character representation of the
encoded string.
*/
#if HAVE_SETENV
setenv("HTTP_COOKIE_AUTH",
XMLRPC_MEMBLOCK_CONTENTS(char, token),
1);
#endif
xmlrpc_mem_block_free(token);
}
开发者ID:arssivka,项目名称:naomech,代码行数:31,代码来源:xmlrpc_authcookie.c
示例15: at_bitmap_init
at_bitmap_type
at_bitmap_init(unsigned char * area,
unsigned short width,
unsigned short height,
unsigned int planes) {
at_bitmap_type bitmap;
if (area)
bitmap.bitmap = area;
else {
if (width * height == 0)
bitmap.bitmap = NULL;
else {
MALLOCARRAY(bitmap.bitmap, width * height * planes);
if (bitmap.bitmap == NULL)
pm_error("Unable to allocate %u x %u x %u bitmap array",
width, height, planes);
bzero(bitmap.bitmap,
width * height * planes * sizeof(unsigned char));
}
}
bitmap.width = width;
bitmap.height = height;
bitmap.np = planes;
return bitmap;
}
开发者ID:Eleanor66613,项目名称:CS131,代码行数:29,代码来源:bitmap.c
示例16: abel
/* ----------------------------------------------------------------------------
** procedure for making the Abel integration for deconvolution of the image
** y <-> array with values for deconvolution and results
** N <- width of the array
** adl <- array with pre-calculated weighting factors
*/
static void
abel ( float *y, int N, double *adl)
{
register int n;
double *rho, *rhop; /* results and new index */
float *yp; /* new indizes for the y-array */
MALLOCARRAY(rho, N);
if( !rho )
pm_error( "out of memory" );
rhop = rho;
yp = y;
for (n=0 ; n<N ; n++)
{
*(rhop++) = ((*yp++) - Sum(n,rho,N,adl))/(adl[n*N+n]);
/* *(rhop++) = ((*yp++) - Sum(n,rho,N))/(dr(n,n+0.5,N)); old version */
if ( *rhop < 0.0 ) *rhop = 0.0; /* error correction ! */
/* if (n > 2) rhop[n-1] = (rho[n-2]+rho[n-1]+rho[n])/3.0; stabilization*/
}
for (n=0 ; n<N ; n++)
{
if (( n>=1 )&&( n<N-1 ))
(*y++) = ((rho[n-1]*0.5+rho[n]+rho[n+1]*0.5)/2.0);/*1D median filter*/
else (*y++) = rho[n];
}
free(rho);
}
开发者ID:Eleanor66613,项目名称:CS131,代码行数:34,代码来源:pgmabel.c
示例17: extractArguments
static void
extractArguments(struct cmdlineParserCtl * const cpP,
unsigned int const argc,
const char ** const argv) {
cpP->numArguments = argc - getopt_argstart();
MALLOCARRAY(cpP->argumentArray, cpP->numArguments);
if (cpP->argumentArray == NULL) {
fprintf(stderr, "Unable to allocate memory for argument array "
"(%u arguments)\n", cpP->numArguments);
abort();
} else {
unsigned int i;
for (i = 0; i < cpP->numArguments; ++i) {
cpP->argumentArray[i] = strdup(argv[getopt_argstart() + i]);
if (cpP->argumentArray[i] == NULL) {
fprintf(stderr, "Unable to allocate memory for Argument %u\n",
i);
abort();
}
}
}
}
开发者ID:BehnamEmamian,项目名称:openholdembot,代码行数:25,代码来源:cmdline_parser.c
示例18: createHist
static void
createHist(bool const colorWanted[3],
unsigned int const histWidth,
unsigned int * (* const histP)[3]) {
/*----------------------------------------------------------------------------
Allocate the histogram arrays and set each slot count to zero.
-----------------------------------------------------------------------------*/
unsigned int color;
for (color = 0; color < 3; ++color) {
if (colorWanted[color]) {
unsigned int * hist;
unsigned int i;
MALLOCARRAY(hist, histWidth);
if (hist == NULL)
pm_error("Not enough memory for histogram arrays (%u bytes)",
histWidth * (unsigned)sizeof(hist[0]) * 3);
for (i = 0; i < histWidth; ++i)
hist[i] = 0;
(*histP)[color] = hist;
} else
(*histP)[color] = NULL;
}
}
开发者ID:chneukirchen,项目名称:netpbm-mirror,代码行数:25,代码来源:pnmhistmap.c
示例19: parseCommandLine
static void
parseCommandLine(int argc, char ** argv,
struct cmdlineInfo * const cmdlineP) {
/*----------------------------------------------------------------------------
Convert program invocation arguments (argc,argv) into a format the
program can use easily, struct cmdlineInfo. Validate arguments along
the way and exit program with message if invalid.
Note that some string information we return as *cmdlineP is in the storage
argv[] points to.
-----------------------------------------------------------------------------*/
optEntry * option_def;
/* Instructions to OptParseOptions3 on how to parse our options.
*/
optStruct3 opt;
unsigned int maxvalSpec;
unsigned int option_def_index;
MALLOCARRAY(option_def, 100);
option_def_index = 0; /* incremented by OPTENTRY */
OPTENT3(0, "maxval", OPT_UINT, &cmdlineP->maxval, &maxvalSpec, 0);
opt.opt_table = option_def;
opt.short_allowed = false; /* We have no short (old-fashioned) options */
opt.allowNegNum = false; /* We have no parms that are negative numbers */
optParseOptions3(&argc, argv, opt, sizeof(opt), 0);
/* Uses and sets argc, argv, and some of *cmdlineP and others. */
if (!maxvalSpec)
cmdlineP->maxval = PPM_MAXMAXVAL;
else {
if (cmdlineP->maxval > PPM_OVERALLMAXVAL)
pm_error("The value you specified for -maxval (%u) is too big. "
"Max allowed is %u", cmdlineP->maxval, PPM_OVERALLMAXVAL);
if (cmdlineP->maxval < 1)
pm_error("You cannot specify 0 for -maxval");
}
if (argc-1 < 3)
pm_error("Need 3 arguments: color, width, height.");
else if (argc-1 > 3)
pm_error("Only 3 arguments allowed: color, width, height. "
"You specified %d", argc-1);
else {
cmdlineP->color = ppm_parsecolor(argv[1], cmdlineP->maxval);
cmdlineP->cols = atoi(argv[2]);
cmdlineP->rows = atoi(argv[3]);
if (cmdlineP->cols <= 0)
pm_error("width argument must be a positive number. You "
"specified '%s'", argv[2]);
if (cmdlineP->rows <= 0)
pm_error("height argument must be a positive number. You "
"specified '%s'", argv[3]);
}
}
开发者ID:jhbsz,项目名称:DIR-850L_A1,代码行数:59,代码来源:ppmmake.c
示例20: load
static void
load(const struct pam * const pamP,
unsigned int const hstep,
sample *** const pixelsP,
unsigned int * const hsamplesP) {
/*----------------------------------------------------------------------------
read file into memory, returning array of rows
-----------------------------------------------------------------------------*/
unsigned int const hsamples = 1 + (pamP->width - 1) / hstep;
/* use only this many cols */
unsigned int row;
tuple * tuplerow;
sample ** pixels;
tuplerow = pnm_allocpamrow(pamP);
MALLOCARRAY(pixels, pamP->height);
if (pixels == NULL)
pm_error("Unable to allocate array of %u pixel rows",
pamP->height);
if (pixels == NULL)
pm_error("Unable to allocate array of %u rows", pamP->height);
for (row = 0; row < pamP->height; ++row) {
unsigned int i;
unsigned int col;
pnm_readpamrow(pamP, tuplerow);
MALLOCARRAY(pixels[row], hsamples);
if (pixels[row] == NULL)
pm_error("Unable to allocate %u-sample array for Row %u",
hsamples, row);
/* save every hstep'th column */
for (i = col = 0; i < hsamples; ++i, col += hstep)
pixels[row][i] = tuplerow[col][0];
}
pnm_freepamrow(tuplerow);
*hsamplesP = hsamples;
*pixelsP = pixels;
}
开发者ID:jhbsz,项目名称:DIR-850L_A1,代码行数:46,代码来源:pamtilt.c
注:本文中的MALLOCARRAY函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论