首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi开辟空间有关问题

2012-03-08 
delphi开辟空间问题Delphi(Pascal) codeprocedure TForm1.FormCreate(Sender: TObject)vari:^Integerj,k

delphi开辟空间问题

Delphi(Pascal) code
procedure TForm1.FormCreate(Sender: TObject);var  i:^Integer;  j,k:Integer;begin  GetMem(i,5*sizeof(Integer));  for j:=0 to 5 do;  i[j]:=j;  ShowMessage(IntToStr(i[3]));end;


我是做实验 都说delphi的指针类似于C的指针,我试了一下发现问题了
以上程序报错
C语言
C/C++ code
#include<stdio.h>#include<stdlib.h>main(){    int *i,j;    i = (int *)malloc(5 * sizeof(int));    for(j = 0;j < 5 ; j ++)    i[j]=j;    printf("%d",i[3]);}


我想要达到类似C语言上面的效果应该如何修改?

[解决办法]
procedure TForm1.Button1Click(Sender: TObject);
var
i:array of integer;
j,k:Integer;
begin
setlength(i,5);
for j:=0 to 5 do
i[j]:=j;
ShowMessage(IntToStr(i[3]));
setlength(i,0);
end;
[解决办法]
var
i:^Integer;
j:Integer;
buf: array[0..255] of Char;
begin
GetMem(i,5*sizeof(Integer));
for j:=1 to 3 do 
begin
i^:=j;
Inc(i);//下移
end;
Dec(i, 3);//归位
wvsprintf(buf, '%d%d%d', PChar(i));//也可以format
ShowMessage(buf);
end;

热点排行