pFrameData[0..100] of PDouble;  //指针数组,pFrameDataiLoop[iLoop]对应GuideData
GuideData: array[0..30] of double;//计算所得数据
for iLoop:=0 to 100 do
begin
GetGuideData(@GuideData);//计算GuideData
GetMem( pFrameData[iLoop], sizeof(double)*30 );//初始化pFrameData[iLoop]
pFrameData[iLoop]:= Copy( GuideData,0,30 );//把GuideData值拷贝给pFrameData[iLoop]
end;//pFrameData[iLoop] := Copy( GuideData,0,30 ); 这句似乎这样赋值不对,需要怎么修改!
数组拷贝哪种效率最高?

解决方案 »

  1.   

    其实不用循环的去赋值,可以用CopyMemory(目标指针,源指针,长度)直接拷贝GuideData所有的数据到pFrameData中
      

  2.   

      pTemp: Pointer;
     CopyMemory( pTemp, @GuideData, sizeof(double)*clPreviewPointNo );
     pFrameDataList[iLoop] := pTemp;这样应该可以了
      

  3.   

    pFrameDataList[iLoop] := pTemp; 
    这样的话下一次循环pTemp一改变,前一个pFrameDataList[iLoop]也改变了