阅读:1508回复:3
问指针赋值
基础不好啊,有个简单问题问各位大侠
定义并初始化了5000*5000大小 的二级指针**ori和25000000的一级指针*buffer int i,j; ori=(BYTE **)new BYTE *[5000]; for (i=0;i<5000;i++) {ori=(BYTE *)new BYTE[5000];} 设已经给buffer赋了值,问如何把buffer里的值都赋给ori啊? |
|
沙发#
发布于:2004-10-14 22:32
看看这样能不能解决你的问题
int id = 0; int it = 0; for (int ir=0; ir < 5000; ir++) { for (it = 0; it < 5000; it++) { ori[ir][it] = buffer[id]; id ++; } } |
|
板凳#
发布于:2004-10-16 20:24
谢谢,是,还有一种方法
for ( i=0; i<5000; i++) for( j=0; j<5000; j++) *( *(ori+i)+j)=*(buffer++); |
|
地板#
发布于:2004-10-16 22:51
你这样会减慢执行速度,每次都要跳变指针,看看这样行不行
int id = 0; int it = 0; BYTE *pori1 = ori, pori2 = NULL; BYTE *pbuf = buffer; for (int ir=0; ir < 5000; ir++) { ''''pori2 = (*pori1); ''''//memcpy(pori2, pbuf, 5000); 用这个替换下面的循环是不是更快? ''''//pbuf += 5000; ''''for (it = 0; it < 5000; it++) ''''{ ''''''''*pori2 = *pbuf; ''''''''id ++; ''''''''pbuf ++; ''''''''pori2 ++ ''''} ''''pori1 ++; } pori1 = NULL; pori2 = NULL; pbuf = NULL; |
|