请教高手如何把C结构体转换成delphi的记录类型??并如何赋初值和读各项的值和释放一结构体变量???
typedef struct _MyData
{
char  name[20];
int   age;
char* detail;}MyData;MyData *pMyData;pMyData = new MyData;
memset(pMyData->name,0,sizeof(pMyData->name));
strcpy(pMyData->name,"zhang san";
pMyData->age = 11;pMyData->detail = new char[15];
memset(pMyData->detail,0,sizeof(pMyData->detail));
strcpy(pMyData->detail,"1234556");请问如何将上述C代码转换成DELPH代码????

解决方案 »

  1.   


    type
      _MyData = record
        name: array [0..19] of char;
        age: integer;
        detail: array of char;
      end;
      TMyData = ^_MyData;...var
      pMyData: TMyData;
    begin
      new(pMyData);
      fillchar(pMyData^.name, sizeof(pMyData^.name), 0);
      strcopy(pMyData^.name, 'zhang san');
      pMyData^.age := 11;  SetLength(pMyData^.detail,15);
      fillchar(pMyData^.detail[0], Length(pMyData^.detail), 0);
      strcopy(@pMyData^.detail[0], '1234556');  //释放
      //C Code:delete[] pMyData->detail;
      SetLength(pMyData^.detail, 0);
      //C Code:pMyData->detail = NULL;
      pMyData^.detail := Nil;
      //C Code:delete pMyData;
      Dispose(pMyData);