delphi与java 类型转换_从C到Delphi的类型转换

我怎么把它翻译成Delphi?

typedef struct ext2dirent {

EXT2_DIR_ENTRY *next;

EXT2_DIR_ENTRY *dirbuf;

Ext2File *parent;

lloff_t read_bytes; // Bytes already read

lloff_t next_block;

} EXT2DIRENT;

typedef struct tagEXT2_DIR_ENTRY {

uint32_t inode; /* Inode number */

uint16_t rec_len; /* Directory entry length */

uint8_t name_len; /* Name length */

uint8_t filetype; /* File type */

char name[EXT2_NAME_LEN]; /* File name */

} __attribute__ ((__packed__)) EXT2_DIR_ENTRY;

EXT2DIRENT *dirent;

int blocksize = 4096;

dirent->dirbuf = (EXT2_DIR_ENTRY *) new char[blocksize]; //

我想做这样的事情;

Type

PExt2_Dir_Entry = ^Ext2_Dir_Entry;

Ext2_Dir_Entry = packed Record

inode: Cardinal;

rec_len : Word;

name_len : Byte;

filetype : Byte;

name : Array[0..EXT2_NAME_LEN-1] of AnsiChar;

End;

var

temp : array of AnsiChar;

if dir = NIL then

Result := nil;

SetLength(temp,self.block_size-1);

dir.dirbuf := PExt2_Dir_Entry(@temp);

但是我没有得到 dir.dirbuf 中我期望的结果 . 我不明白 new char 功能在C中做了什么 . 但我认为这可能与我的失败有关 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值