首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

数组地址加值和memcpy有关问题

2013-03-25 
数组地址加值和memcpy问题?...float* medFiltBuff new float[25]float[][] lp[460][620]//设第一个标

数组地址加值和memcpy问题?
... 
 float* medFiltBuff = new float[25]; 
 float[][] lp=[460][620];//设第一个标号460为行,第二个标号620为列 
 //对lp[][]一 一赋值,代码略 
 int cpy_block =  5 * sizeof(float); 
 for(int i = 2 ; i<460 - 2;i++) 
 {  
 for(int j = 2 ; j<620 - 2;j++) 
  {   
 for(int k=-2;k<=2;k++)   
 {     
float *pSrc = &lp[i + k][j -2];      
        float *pDst = medFiltBuff + (k + 2)*5;    
            memcpy(pDst, pSrc, cpy_block); 
   }  
 }
  }
...
想问:
1) 对pSrc取cpy_block数据块,就是取5个标号的数组段吧?但不知是从j -2 到j -2 + 4取列块,还是从i + k到i + k + 4取行块?
2) 执行memcpy(pDst, pSrc, cpy_block)时是否可以理解为从数组medFiltBuff的(k + 2)*5标号起连续5个标号的数组段值都被复盖?

[解决办法]
1,void *memcpy( void *dest, const void *src, size_t count );
看下参数原型就一目了然了
2,会覆盖掉目标数组位置后面的部分数据的

热点排行