我定义了一个结构体type
Lp = record
I :Integer;
J :Integer;
end;
type LLP = ^LP;
//然后又定义了一个包含上面的结构体
type
MD = record
ID :Integer;
MV : array [0..2] of LLP;
end;
type LMD = ^MD;
//接着我在程序中定义了一个变量
MDTest : LMD;
那我现在如果要对MDTest这个变量所对应的结构体赋值,应该怎么操作呢?谢谢
Lp = record
I :Integer;
J :Integer;
end;
type LLP = ^LP;
//然后又定义了一个包含上面的结构体
type
MD = record
ID :Integer;
MV : array [0..2] of LLP;
end;
type LMD = ^MD;
//接着我在程序中定义了一个变量
MDTest : LMD;
那我现在如果要对MDTest这个变量所对应的结构体赋值,应该怎么操作呢?谢谢
解决方案 »
- 如何在DELPHI中编写程序,使当焦点在一个EDIT中时,EDIT中的值不能是少于4位的任何数
- 为什么用delphi7的TImage控件无法显示用photoshop转换来的.jpg文件呢?
- 请教Delphi2005安装
- 如何判断MonthCalander中鼠标点中了日期还是翻页按钮
- 500~高分求够~企业开发报表应用~推崇一个控件
- 一个可以在任何地方都可以拖东窗体的问题。
- delphi中有让日期加一年的函数吗?
- 关于dbgrid的问题
- InstallShield Professional - Standard Edition --- IPSE622.exe 序列号
- 请各位大仙帮忙把一下程序变为delphi谢谢
- sql中怎样取去年的第一天?
- 如何调整TQRChart的Axis的title和label之间的距离?
如果我要把MDTest做为参数取值或是赋值,参数应该怎么样传递
begin
New(MDTest);
MDTest.ID := 111;
New(MDTest.MV[0]);//你需要为其分配空间
MDTest.MV[0].I := 100;
MDTest.MV[0].J := 123;
end;
MDTest : LMD; 您这个定义的应该是全局变量
先给MDTest分配空间,然后再调用test这个函数
type
Lp = record
I :array [0..19] of byte;
J :Word;
end;
type LLP = ^LP;
//然后又定义了一个包含上面的结构体
type
MD = record
ID :Integer;
MV : LP;
end;
type LMD = ^MD;
如果从VC的DLL里传来指向这个结构体MD,我先把LP里面的I和J保存起来了,然后怎么让指针往前走一步,继续读取LP结构体里面的I和J呢?
var
pMD: LMD;
begin
pMD := ....
...
Inc(pMD);
end;
MD = record
ID :Integer;
MV : LP;
end;
LMD = ^MD;
那么var
pMD: LMD;
begin
...
Inc(pMD);是不会报你说的错的
var
MDTest: LMD;
Lp1: Lp;
begin
Lp1.I := 133;
Lp1.J := 233;
New(MDTest);
MDTest^.ID := 2;
MDTest^.MV[0] := @Lp1; //因为LLP是一个Lp类型的指针, 你直接把LP类型的变量地址赋给他就可以的 New(MDTest.MV[1]);
MDTest.MV[1].I := 1;
MDTest.MV[1].J := 2;
Dispose(MDTest);
end;
5楼的是没错, 你是不是INC后, 又释放那指针了?
在结构体
type
Lp = record
I :array [0..19] of byte;
J :Word;
end;
type LLP = ^LP;
//然后又定义了一个包含上面的结构体
type
MD = record
ID :Integer;
MV : LLP; //在这里我这样写的
end;
type LMD = ^MD;
我想再问一句,在MD这个结构体里,我定义MV :LP和MV :LLP,这两个有什么区别呢?
MV :LP就是指针吧?
I: PInteger;
J: Integer;
begin
//I^ := 2; //这样你给他赋值,肯定会报错的 New(I);
I^ := 3; //这样就可以正常使用了
Dispose(I); J := 232;
end;不 知道你明白没,