您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ xxmalloc函数代码示例

51自学网 2021-06-03 11:53:44
  C++
这篇教程C++ xxmalloc函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中xxmalloc函数的典型用法代码示例。如果您正苦于以下问题:C++ xxmalloc函数的具体用法?C++ xxmalloc怎么用?C++ xxmalloc使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了xxmalloc函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: add_defined

int add_defined (struct fsm *net, char *string) {  struct defined *defined, *defined_prev;  int redefine;  redefine = 0;  if (net == NULL) { return 0; }  fsm_count(net);  if (defines == NULL) {    defined = xxmalloc(sizeof(struct defined));    defines = defined;    defined->next = NULL;  } else {    for (defined = defines; defined != NULL; defined = defined->next) {      defined_prev = defined;      if (strcmp(defined->name, string) == 0) {	redefine = 1;	break;      }    }    if (redefine == 0) {      defined_prev->next = xxmalloc(sizeof(struct defined));      defined = defined_prev->next;      defined->next = NULL;    }  }  if (redefine) {      fsm_destroy(defined->net);      xxfree(defined->name);  }  defined->name = xxstrdup(string);  defined->net = net;  return(redefine);}
开发者ID:basis-technology-corp,项目名称:foma-fixes,代码行数:33,


示例2: srand

struct apply_handle *apply_init(struct fsm *net) {    struct apply_handle *h;    srand((unsigned int) time(NULL));    h = malloc(sizeof(struct apply_handle));    /* Init */    h->iterate_old = 0;    h->iterator = 0;    h->instring = NULL;    h->flag_list = NULL;    h->flag_lookup = NULL;    h->last_net = net;    h->outstring = xxmalloc(sizeof(char)*DEFAULT_OUTSTRING_SIZE);    h->outstringtop = DEFAULT_OUTSTRING_SIZE;    *(h->outstring) = '/0';    h->gstates = net->states;    h->gsigma = net->sigma;    h->printcount = 1;    apply_create_statemap(h, net);    h->searchstack = xxmalloc(sizeof(struct searchstack) * DEFAULT_STACK_SIZE);    h->apply_stack_top = DEFAULT_STACK_SIZE;    apply_stack_clear(h);    apply_create_sigarray(h, net);    return(h);}
开发者ID:basis-technology-corp,项目名称:foma-fixes,代码行数:28,


示例3: my_memalign_hook

  static void * my_memalign_hook (size_t size, size_t alignment, const void *) {    // Check for non power-of-two alignment, or mistake in size.    if ((alignment == 0) ||	(alignment & (alignment - 1)))      {	return NULL;      }    // Try to just allocate an object of the requested size.    // If it happens to be aligned properly, just return it.    void * ptr = xxmalloc (size);    if (((size_t) ptr & (alignment - 1)) == (size_t) ptr) {      // It is already aligned just fine; return it.      return ptr;    }    // It was not aligned as requested: free the object.    xxfree (ptr);    // Now get a big chunk of memory and align the object within it.    // NOTE: this REQUIRES that the underlying allocator be able    // to free the aligned object, or ignore the free request.    void * buf = xxmalloc (2 * alignment + size);    void * alignedPtr = (void *) (((size_t) buf + alignment - 1) & ~(alignment - 1));    return alignedPtr;  }
开发者ID:BwRy,项目名称:Heap-Layers,代码行数:27,


示例4: sigma_to_pairs

static void sigma_to_pairs(struct fsm *net) {    int i, j, x, y, z, next_x = 0;  struct fsm_state *fsm;  fsm = net->states;  epsilon_symbol = -1;   maxsigma = sigma_max(net->sigma);  maxsigma++;  single_sigma_array = xxmalloc(2*maxsigma*maxsigma*sizeof(int));  double_sigma_array = xxmalloc(maxsigma*maxsigma*sizeof(int));    for (i=0; i < maxsigma; i++) {    for (j=0; j< maxsigma; j++) {      *(double_sigma_array+maxsigma*i+j) = -1;    }  }    /* f(x) -> y,z sigma pair */  /* f(y,z) -> x simple entry */  /* if exists f(n) <-> EPSILON, EPSILON, save n */  /* symbol(x) x>=1 */  /* Forward mapping: */  /* *(double_sigma_array+maxsigma*in+out) */  /* Backmapping: */  /* *(single_sigma_array+(symbol*2) = in(symbol) */  /* *(single_sigma_array+(symbol*2+1) = out(symbol) */  /* Table for checking whether a state is final */  x = 0;  net->arity = 1;  for (i=0; (fsm+i)->state_no != -1; i++) {    y = (fsm+i)->in;    z = (fsm+i)->out;    if ((y == -1) || (z == -1))      continue;    if (y != z || y == UNKNOWN || z == UNKNOWN)        net->arity = 2;    if (*(double_sigma_array+maxsigma*y+z) == -1) {      *(double_sigma_array+maxsigma*y+z) = x;      *(single_sigma_array+next_x) = y;      next_x++;      *(single_sigma_array+next_x) = z;      next_x++;      if (y == EPSILON && z == EPSILON) {	epsilon_symbol = x;      }      x++;    }  }  num_symbols = x;}
开发者ID:JSefara,项目名称:foma,代码行数:57,


示例5: memoize_e_closure

static void memoize_e_closure(struct fsm_state *fsm) {        int i, state, laststate, *redcheck;    struct e_closure_memo *ptr;        e_closure_memo = xxcalloc(num_states,sizeof(struct e_closure_memo));    marktable = xxcalloc(num_states,sizeof(int));    /* Table for avoiding redundant epsilon arcs in closure */    redcheck = xxmalloc(num_states*sizeof(int));    for (i=0; i < num_states; i++) {        ptr = e_closure_memo+i;        ptr->state = i;        ptr->target = NULL;        *(redcheck+i) = -1;    }    laststate = -1;    for (i=0; ;i++) {                state = (fsm+i)->state_no;                if (state != laststate) {            if (!int_stack_isempty()) {                                deterministic = 0;                ptr = e_closure_memo+laststate;                ptr->target = e_closure_memo+int_stack_pop();                while (!int_stack_isempty()) {                    ptr->next = xxmalloc(sizeof(struct e_closure_memo));                    ptr->next->state = laststate;                    ptr->next->target = e_closure_memo+int_stack_pop();                    ptr->next->next = NULL;                    ptr = ptr->next;                }            }        }        if (state == -1) {            break;        }        if ((fsm+i)->target == -1) {            continue;        }        /* Check if we have a redundant epsilon arc */        if ((fsm+i)->in == EPSILON && (fsm+i)->out == EPSILON) {            if (*(redcheck+((fsm+i)->target)) != (fsm+i)->state_no) {                if ((fsm+i)->target != (fsm+i)->state_no) {                    int_stack_push((fsm+i)->target);                    *(redcheck+((fsm+i)->target)) = (fsm+i)->state_no;                }            }            laststate = state;        }    }    xxfree(redcheck);}
开发者ID:JSefara,项目名称:foma,代码行数:56,


示例6: apply_create_sigarray

void apply_create_sigarray(struct apply_handle *h, struct fsm *net) {    struct sigma *sig;    struct fsm_state *fsm;        int i, maxsigma;        fsm = net->states;    maxsigma = sigma_max(net->sigma);    // Default size created at init, resized later if necessary    h->sigmatch_array = xxcalloc(1024,sizeof(struct sigmatch_array));    h->sigmatch_array_size = 1024;    h->sigs = xxmalloc(sizeof(char **)*(maxsigma+1));    h->has_flags = 0;    h->flag_list = NULL;    /* Malloc first array of trie and store trie ptrs to free later */    h->sigma_trie = xxcalloc(256,sizeof(struct sigma_trie));    h->sigma_trie_arrays = xxmalloc(sizeof(struct sigma_trie_arrays));    h->sigma_trie_arrays->arr = h->sigma_trie;    h->sigma_trie_arrays->next = NULL;    for (i=0;i<256;i++)	(h->sigma_trie+i)->next = NULL;    for (sig = h->gsigma; sig != NULL && sig->number != -1; sig = sig->next) {	if (flag_check(sig->symbol)) {	    h->has_flags = 1;	    apply_add_flag(h, flag_get_name(sig->symbol));	}	*(h->sigs+(sig->number)) = sig->symbol;	/* Add sigma entry to trie */	if (sig->number > IDENTITY) {	    apply_add_sigma_trie(h, sig->number, sig->symbol);	}    }    if (h->has_flags) {	h->flag_lookup = xxmalloc(sizeof(struct flag_lookup)*(maxsigma+1));	for (i=0; i <= maxsigma; i++) {	    (h->flag_lookup+i)->type = 0;	    (h->flag_lookup+i)->name = NULL;	    (h->flag_lookup+i)->value = NULL;	}	for (sig = h->gsigma; sig != NULL ; sig = sig->next) {	    if (flag_check(sig->symbol)) {		(h->flag_lookup+sig->number)->type = flag_get_type(sig->symbol);		(h->flag_lookup+sig->number)->name = flag_get_name(sig->symbol);		(h->flag_lookup+sig->number)->value = flag_get_value(sig->symbol);			    }	}    }}
开发者ID:basis-technology-corp,项目名称:foma-fixes,代码行数:54,


示例7: my_realloc_hook

  static void * my_realloc_hook (void * ptr, size_t sz, const void *) {    // NULL ptr = malloc.    if (ptr == NULL) {      return xxmalloc(sz);    }    if (sz == 0) {      xxfree (ptr);#if defined(__APPLE__)      // 0 size = free. We return a small object.  This behavior is      // apparently required under Mac OS X and optional under POSIX.      return xxmalloc(1);#else      // For POSIX, don't return anything.      return NULL;#endif    }    size_t objSize = xxmalloc_usable_size(ptr);    #if 0    // Custom logic here to ensure we only do a logarithmic number of    // reallocations (with a constant space overhead).    // Don't change size if the object is shrinking by less than half.    if ((objSize / 2 < sz) && (sz <= objSize)) {      // Do nothing.      return ptr;    }    // If the object is growing by less than 2X, double it.    if ((objSize < sz) && (sz < objSize * 2)) {      sz = objSize * 2;    }#endif    void * buf = xxmalloc(sz);    if (buf != NULL) {      // Successful malloc.      // Copy the contents of the original object      // up to the size of the new block.      size_t minSize = (objSize < sz) ? objSize : sz;      memcpy (buf, ptr, minSize);      xxfree (ptr);    }    // Return a pointer to the new one.    return buf;  }
开发者ID:BwRy,项目名称:Heap-Layers,代码行数:49,


示例8: xxmalloc

struct nvpair *nvpair_create(){	struct nvpair *n;	n = xxmalloc(sizeof(*n));	n->table = hash_table_create(7, hash_string);	return n;}
开发者ID:LyonsLab,项目名称:cctools,代码行数:7,


示例9: pfs_resolve_add_entry

void pfs_resolve_add_entry( const char *prefix, const char *redirect, mode_t mode ){	assert(prefix);	assert(redirect);	char real_redirect[PFS_PATH_MAX];	struct pfs_mount_entry *ns = pfs_process_current_ns();	if (!ns) ns = mount_list;	assert(ns);	debug(D_RESOLVE,"resolving %s in parent ns",redirect);	switch (pfs_resolve_ns(find_parent_ns(ns), redirect, real_redirect, mode, 0)) {	case PFS_RESOLVE_CHANGED:	case PFS_RESOLVE_UNCHANGED:		break;	default:		debug(D_NOTICE,"couldn't resolve redirect %s",prefix);		return;	}	struct pfs_mount_entry *m = (struct pfs_mount_entry *) xxmalloc(sizeof(*m));	memcpy(m, ns, sizeof(*m));	memset(ns, 0, sizeof(*ns));	strcpy(ns->prefix, prefix);	strcpy(ns->redirect, real_redirect);	ns->mode = mode;	ns->next = m;	ns->refcount = m->refcount;	m->refcount = 1;	pfs_resolve_cache_flush();}
开发者ID:Nekel-Seyew,项目名称:cctools,代码行数:30,


示例10: xxmalloc

struct work_queue_master *duplicate_work_queue_master(struct work_queue_master *master){	struct work_queue_master *m;	m = xxmalloc(sizeof(struct work_queue_master));	if(!m) return NULL;	strncpy(m->addr, master->addr, LINK_ADDRESS_MAX);	strncpy(m->proj, master->proj, WORK_QUEUE_NAME_MAX);	m->port = master->port;	m->priority = master->priority;	m->capacity = master->capacity;	m->tasks_waiting = master->tasks_waiting; 	m->tasks_running = master->tasks_running; 	m->tasks_complete = master-> tasks_complete; 	m->total_tasks_dispatched = master-> total_tasks_dispatched; 	m->workers_init = master->workers_init; 	m->workers_ready = master->workers_ready; 	m->workers_busy = master->workers_busy; 	m->workers_full = master->workers_full; 	m->workers = master->workers; 	if(master->workers_by_pool) {		m->workers_by_pool = xxstrdup(master->workers_by_pool);	} else {		m->workers_by_pool = NULL;	}	strncpy(m->owner, master->owner, USERNAME_MAX);	return m;}
开发者ID:DeVonteApplewhite,项目名称:cctools,代码行数:31,


示例11: add_defined

int add_defined(struct defined_networks *def, struct fsm *net, char *string) {    struct defined_networks *d;    if (net == NULL)	return 0;    fsm_count(net);    for (d = def; d != NULL; d = d->next) {	if (d->name != NULL && strcmp(d->name, string) == 0) {	    xxfree(d->net);	    xxfree(d->name);	    d->net = net;	    d->name = xxstrdup(string);	    return 1;	}    }    if (def->name == NULL) {	d = def;    } else {	d = xxmalloc(sizeof(struct defined_networks));	d->next = def->next;	def->next = d;    }    d->name = xxstrdup(string);    d->net = net;    return 0;}
开发者ID:JSefara,项目名称:foma,代码行数:25,


示例12: buffer_create

char *chirp_ticket_tostring(struct chirp_ticket *ct){	size_t n;	const char *s;	char *result;	buffer_t *B;	B = buffer_create();	buffer_printf(B, "subject /"%s/"/n", ct->subject);	buffer_printf(B, "ticket /"%s/"/n", ct->ticket);	buffer_printf(B, "expiration /"%lu/"/n", (unsigned long) ct->expiration);	for(n = 0; n < ct->nrights; n++) {		buffer_printf(B, "rights /"%s/" /"%s/"/n", ct->rights[n].directory, ct->rights[n].acl);	}	s = buffer_tostring(B, &n);	result = xxmalloc(n + 1);	memset(result, 0, n + 1);	memcpy(result, s, n);	buffer_delete(B);	return result;}
开发者ID:nfillmore,项目名称:cctools,代码行数:25,


示例13: fsm_construct_add_arc

void fsm_construct_add_arc(struct fsm_construct_handle *handle, int source, int target, char *in, char *out) {    struct fsm_state_list *sl;    struct fsm_trans_list *tl;    int symin, symout;    fsm_construct_check_size(handle, source);    fsm_construct_check_size(handle, target);    if (source > handle->maxstate)        handle->maxstate = source;    if (target > handle->maxstate)        handle->maxstate = target;    sl = (handle->fsm_state_list)+target;    sl->used = 1;    sl = (handle->fsm_state_list)+source;    sl->used = 1;    tl = xxmalloc(sizeof(struct fsm_trans_list));    tl->next = sl->fsm_trans_list;    sl->fsm_trans_list = tl;    if ((symin = fsm_construct_check_symbol(handle,in)) == -1)        symin = fsm_construct_add_symbol(handle,in);    if ((symout = fsm_construct_check_symbol(handle,out)) == -1)        symout = fsm_construct_add_symbol(handle,out);    tl->in = symin;    tl->out = symout;    tl->target = target;}
开发者ID:StudioEtrange,项目名称:foma,代码行数:27,


示例14: ticket_translate

static int ticket_translate(const char *name, char *ticket_subject){	char command[PATH_MAX * 2 + 4096];	const char *dummy;	if(chirp_ticket_isticketsubject(name, &dummy)) {		strcpy(ticket_subject, name);		return 1;	}	char *pk = xxmalloc(65536); /* max size of public key */	sprintf(command, "sed '/^//s*#/d' < '%s' | openssl rsa -pubout 2> /dev/null", name);	FILE *pkf = popen(command, "r");	int length = fread(pk, sizeof(char), 65536, pkf);	if(length <= 0) {		pclose(pkf);		return 0;	}	pk[length] = 0;	pclose(pkf);	/* load the digest */	const char *digest = chirp_ticket_digest(pk);	sprintf(ticket_subject, "ticket:%s", digest);	return 1;}
开发者ID:brenden,项目名称:cctools,代码行数:27,


示例15: do_ticket_get

static INT64_T do_ticket_get(int argc, char **argv){	char *subject;	char *ticket;	time_t duration;	char **rights;	INT64_T result = chirp_reli_ticket_get(current_host, argv[1], &subject, &ticket, &duration, &rights, stoptime);	if(result == 0) {		printf("%s/n", subject);		free(subject);		/* base64 encode the ticket so it fits on one line */		char *bticket = xxmalloc(sizeof(char) * strlen(ticket) * 2 + 10);	/* double is more than 4/3 needed */		b64_encode(ticket, strlen(ticket), bticket, strlen(ticket) * 2 + 10);		printf("%s/n", bticket);		free(bticket);		free(ticket);		printf("%llu/n", (unsigned long long) duration);		char **tmp = rights;		for(; tmp && tmp[0] && tmp[1]; tmp += 2) {			printf("%s %s/n", tmp[0], tmp[1]);			free(tmp[0]);			free(tmp[1]);		}		free(rights);	}	return result;}
开发者ID:ailurus1991,项目名称:cctools,代码行数:27,


示例16: xxmalloc

buffer_t *buffer_create(void){	buffer_t *b = xxmalloc(sizeof(buffer_t));	b->buf = NULL;	b->size = 0;	return b;}
开发者ID:liblit,项目名称:Murphy,代码行数:7,


示例17: fopen

char *file_to_mem(char *name) {    FILE    *infile;    size_t    numbytes;    char *buffer;    infile = fopen(name, "r");    if(infile == NULL) {        printf("Error opening file '%s'/n",name);        return NULL;    }    fseek(infile, 0L, SEEK_END);    numbytes = ftell(infile);    fseek(infile, 0L, SEEK_SET);    buffer = (char*)xxmalloc((numbytes+1) * sizeof(char));    if(buffer == NULL) {        printf("Error reading file '%s'/n",name);        return NULL;    }    if (fread(buffer, sizeof(char), numbytes, infile) != numbytes) {        printf("Error reading file '%s'/n",name);        return NULL;    }    fclose(infile);    *(buffer+numbytes)='/0';    return(buffer);}
开发者ID:JSefara,项目名称:foma,代码行数:25,


示例18: xxmalloc

struct io_buf_handle *io_init() {    struct io_buf_handle *iobh;    iobh = xxmalloc(sizeof(struct io_buf_handle));    (iobh->io_buf) = NULL;    (iobh->io_buf_ptr) = NULL;    return(iobh);}
开发者ID:JSefara,项目名称:foma,代码行数:7,


示例19: ast_do_simple

static int ast_do_simple( int line, int argc, char **argv, int fds[3], time_t stoptime ){	char *cmd;	int length=0;	int i;	for( i=0; i<argc; i++ ) {		length+=strlen(argv[i])+1;	}	cmd = xxmalloc(length+1);	cmd[0] = 0;	for( i=0; i<argc; i++ ) {		strcat(cmd,argv[i]);		strcat(cmd," ");	}	ftsh_error(FTSH_ERROR_COMMAND,line,"%s",cmd);	free(cmd);	if(hash_table_lookup(ftable,argv[0]) || builtin_lookup(argv[0]) ) {		return ast_do_internal(line,argc,argv,fds,stoptime);	} else {		return ast_do_external(line,argc,argv,fds,stoptime);	}}
开发者ID:LyonsLab,项目名称:cctools,代码行数:28,


示例20: list_create

struct list *get_workload_specs(const char *path) {		struct list *specs = list_create();	if(!specs) {		fprintf(stderr, "Cannot allocate memory for creating list!/n");		return NULL;	}	// Read in new configuration from file	FILE *fp;	fp = fopen(path, "r");	if(!fp) {		fprintf(stderr, "Failed to open workload specification file at %s./n", path);		return NULL;	}	char *line;	int line_count = 0;	while((line = get_line(fp))) {		line_count++;		string_chomp(line);		if(string_isspace(line)) { // skip empty lines			continue;		}		if(line[0] == '#') { // skip comment lines			continue;		}				int submit, input, exe, output, num;		if(sscanf(line, "%d %d %d %d %d", &submit, &input, &exe, &output, &num) == 5) {			if(submit < 0 || input <=0 || exe <=0 || output <=0 || num <=0) {				fprintf(stderr, "Other than the submit_time field, every other field should be greater than 0./n");				goto fail;			}			struct task_series *ts = (struct task_series *)xxmalloc(sizeof(struct task_series));			ts->submit_time = submit;			ts->input_size = input;			ts->execution_time = exe;			ts->output_size = output;			ts->num_of_tasks = num;			list_push_priority(specs, ts, ts->submit_time);		} else {			fprintf(stderr, "Line %d is invalid: %s/n", line_count, line);			goto fail;		}	}	fclose(fp);	return specs;fail:	// delete list	list_free(specs);	list_delete(specs);	fclose(fp);	return NULL;}
开发者ID:brenden,项目名称:cctools,代码行数:60,


示例21: apply_add_sigma_trie

void apply_add_sigma_trie(struct apply_handle *h, int number, char *symbol, int len) {    /* Create a trie of sigma symbols (prefixes) so we can    */    /* quickly (in O(n)) tokenize an arbitrary string into    */    /* integer sequences representing symbols, using longest- */    /* leftmost factorization.                                */    int i;    struct sigma_trie *st;    struct sigma_trie_arrays *sta;    st = h->sigma_trie;    for (i = 0; i < len; i++) {	st = st+(unsigned char)*(symbol+i);	if (i == (len-1)) {	    st->signum = number;	} else {	    if (st->next == NULL) {		st->next = xxcalloc(256,sizeof(struct sigma_trie));				st = st->next;		/* store these arrays to free them later */		sta = xxmalloc(sizeof(struct sigma_trie_arrays));		sta->arr = st;		sta->next = h->sigma_trie_arrays;		h->sigma_trie_arrays = sta;	    } else {		st = st->next;	    }	}    }}
开发者ID:JSefara,项目名称:foma,代码行数:31,


示例22: apply_add_sigma_trie

void apply_add_sigma_trie(struct apply_handle *h, int number, char *symbol) {    int i, len;    struct sigma_trie *st;    struct sigma_trie_arrays *sta;    len = strlen(symbol);    st = h->sigma_trie;    for (i = 0; i < len; i++) {	st = st+(unsigned char)*(symbol+i);	if (i == (len-1)) {	    st->signum = number;	} else {	    if (st->next == NULL) {		st->next = xxcalloc(256,sizeof(struct sigma_trie));				st = st->next;		/* store these arrays to free them later */		sta = xxmalloc(sizeof(struct sigma_trie_arrays));		sta->arr = st;		sta->next = h->sigma_trie_arrays;		h->sigma_trie_arrays = sta;	    } else {		st = st->next;	    }	}    }}
开发者ID:basis-technology-corp,项目名称:foma-fixes,代码行数:26,


示例23: nhash_insert

static int nhash_insert(int hashval, int *set, int setsize) {   struct nhash_list *tableptr;    int i, fs = 0;  current_setnum++;  tableptr = table+hashval;  nhash_load++;  for (i = 0; i < setsize; i++) {      if (finals[*(set+i)])          fs = 1;  }  if (tableptr->size == 0) {          tableptr->set_offset = move_set(set, setsize);      tableptr->size = setsize;      tableptr->setnum = current_setnum;            add_T_ptr(current_setnum, setsize, tableptr->set_offset, fs);      return(current_setnum);  }    tableptr = xxmalloc(sizeof(struct nhash_list));  tableptr->next = (table+hashval)->next;  (table+hashval)->next = tableptr;  tableptr->setnum = current_setnum;  tableptr->size = setsize;  tableptr->set_offset = move_set(set, setsize);    add_T_ptr(current_setnum, setsize, tableptr->set_offset, fs);  return(current_setnum);}
开发者ID:JSefara,项目名称:foma,代码行数:32,


示例24: sigma_sort

int sigma_sort(struct fsm *net) {#ifdef ORIGINAL  int(*comp)() = ssortcmp;#else  int(*comp)(const void*, const void*) = ssortcmp;#endif  int size, i, max, *replacearray;  struct ssort *ssort;  struct sigma *sigma;  struct fsm_state *fsm_state;    size = sigma_max(net->sigma);  if (size < 0) { return 1; }  ssort = xxmalloc(sizeof(struct ssort)*size);  for (i=0, sigma=net->sigma; sigma != NULL; sigma=sigma->next) {    if (sigma->number > IDENTITY) {      ssort[i].symbol = (char *)sigma->symbol;      ssort[i].number = sigma->number;      i++;    }  }  max = i;  qsort(ssort, max, sizeof(struct ssort), comp);  replacearray = xxmalloc(sizeof(int)*(size+3));  for (i=0; i<max; i++)      replacearray[(ssort+i)->number] = i+3;  /* Replace arcs */  for(i=0, fsm_state = net->states; (fsm_state+i)->state_no != -1; i++) {    if ((fsm_state+i)->in > IDENTITY)      (fsm_state+i)->in = replacearray[(fsm_state+i)->in];    if ((fsm_state+i)->out > IDENTITY)      (fsm_state+i)->out = replacearray[(fsm_state+i)->out];  }  /* Replace sigma */  for (i=0, sigma=net->sigma; sigma != NULL; sigma=sigma->next) {    if (sigma->number > IDENTITY) {      sigma->number = i+3;      sigma->symbol = (ssort+i)->symbol;      i++;    }  }  xxfree(replacearray);  xxfree(ssort);  return(1);}
开发者ID:unhammer,项目名称:hfst3,代码行数:47,


示例25: sigma_cleanup

void sigma_cleanup (struct fsm *net, int force) {    int i,j,first,maxsigma,*attested;    struct fsm_state *fsm;    struct sigma *sig, *sig_prev, *sign;        if (force == 0) {        if (sigma_find_number(IDENTITY, net->sigma) != -1)            return;        if (sigma_find_number(UNKNOWN, net->sigma) != -1)            return;    }    maxsigma = sigma_max(net->sigma);    if (maxsigma < 0) { return; }    attested = xxmalloc(sizeof(int)*(maxsigma+1));    for (i=0; i<=maxsigma; i++)        *(attested+i) = 0;    fsm = net->states;    for (i=0; (fsm+i)->state_no != -1; i++) {        if ((fsm+i)->in >=0)            *(attested+(fsm+i)->in) = 1;        if ((fsm+i)->out >=0)            *(attested+(fsm+i)->out) = 1;    }    for (i=3,j=3; i<=maxsigma;i++ ) {        if (*(attested+i)) {            *(attested+i) = j;            j++;        }    }    for (i=0; (fsm+i)->state_no != -1; i++) {                if ((fsm+i)->in > 2)            (fsm+i)->in = *(attested+(fsm+i)->in);        if ((fsm+i)->out > 2)            (fsm+i)->out = *(attested+(fsm+i)->out);    }    sig_prev = NULL;    for (sig = net->sigma; sig != NULL && sig->number != -1; sig = sign) {        first = 1;	sign = sig->next;        if (!*(attested+(sig->number))) {	    xxfree(sig->symbol);	    xxfree(sig);            if (sig_prev != NULL) {                sig_prev->next = sign;                first = 0;            } else {                first = 0;                net->sigma = sign;            }        } else {            sig->number = sig->number >= 3 ? *(attested+(sig->number)) : sig->number;        }        if (first)            sig_prev = sig;    }    xxfree(attested);    return;}
开发者ID:Akron,项目名称:Lingua-Foma,代码行数:59,


示例26: apply_create_statemap

void apply_create_statemap(struct apply_handle *h, struct fsm *net) {    int i;    struct fsm_state *fsm;    fsm = net->states;    h->statemap = xxmalloc(sizeof(int)*net->statecount);    h->marks = xxmalloc(sizeof(int)*net->statecount);    for (i=0; i < net->statecount; i++) {	*(h->statemap+i) = -1;	*(h->marks+i) = 0;    }    for (i=0; (fsm+i)->state_no != -1; i++) {	if (*(h->statemap+(fsm+i)->state_no) == -1) {	    *(h->statemap+(fsm+i)->state_no) = i;	}    }}
开发者ID:basis-technology-corp,项目名称:foma-fixes,代码行数:17,


示例27: add_mount_entry

static void add_mount_entry( const char *prefix, const char *redirect ){	struct mount_entry * m = xxmalloc(sizeof(*m));	strcpy(m->prefix,prefix);	strcpy(m->redirect,redirect);	m->next = mount_list;	mount_list = m;}
开发者ID:bbockelm,项目名称:cctools,代码行数:8,


示例28: debug_config_fatal

void debug_config_fatal(void (*callback) ()){	struct fatal_callback *f;	f = xxmalloc(sizeof(*f));	f->callback = callback;	f->next = fatal_callback_list;	fatal_callback_list = f;}
开发者ID:dcbradley,项目名称:parrot_cvmfs,代码行数:8,


示例29: xxmalloc

struct sigma *sigma_create() {  struct sigma *sigma;  sigma = xxmalloc(sizeof(struct sigma));  sigma->number = -1; /*Empty sigma*/  sigma->next = NULL;  sigma->symbol = NULL;  return(sigma);}
开发者ID:Akron,项目名称:Lingua-Foma,代码行数:8,


示例30: new

void * operator new (size_t sz) throw (std::bad_alloc){  void * ptr = xxmalloc (sz);  if (ptr == NULL) {    throw std::bad_alloc();  } else {    return ptr;  }}
开发者ID:BwRy,项目名称:Heap-Layers,代码行数:9,



注:本文中的xxmalloc函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ xxstrdup函数代码示例
C++ xxfree函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。