XBa*_*000 3 delphi pointers copy record
...
PAnalyzeInfo = ^TAnalyzeInfo;
TAnalyzeInfo = record
pPitch: array of Single;
pEnergy: array of Single;
pPitchAccent: array of Single;
pEnergyAccent: array of Single;
pDicAccent: array of Single;
pScore: array of Single;
pBoundary: Integer;
szRecWord: array of array of AnsiChar;
nRecWordNum: Integer;
nFrameNum: Integer;
end;
...
Run Code Online (Sandbox Code Playgroud)
我有pDataSource: PAnalyzeInfo包含数据,我想将其复制到一个新的自变量.MyData : TAnalyzeInfo.
是否可以复制整个结构或逐个添加?
在Delphi中,您可以通过分配它来复制记录,这要归功于编译器的魔力.
MyData := DataSource^;
Run Code Online (Sandbox Code Playgroud)
动态数组是引用计数的,因此只要您不需要真正的深层副本,分配也会处理动态数组.通过简单的赋值,它们只共享相同的内存.
如果您不想要,可以单独复制它们:
MyData.pPitch = Copy(pDataSource^.pPitch, Low(pDataSource^.pPitch),
High(pDataSource^.pPitch);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3480 次 |
| 最近记录: |