我的编译器是 delphi2010首先我声明了一个 ansichar 静态数组s:array[0..30] of ansichar;s:='aaaaaa';这样编译器是正常通过的。然后,我试着用动态数组解决 静态不能释放的问题。s1:array of ansichar;
setlength(s1,30);
s1:='aaaaa';这样是不能通过的有什么办法可以达到上面通过语句的效果。。要求不用:string 和cstring类型。.... 求解答。。
setlength(s1,30);
s1:='aaaaa';这样是不能通过的有什么办法可以达到上面通过语句的效果。。要求不用:string 和cstring类型。.... 求解答。。
procedure TForm1.Button1Click(Sender: TObject);
var
s1: array of AnsiChar;
begin
SetLength(s1, 100);
s1[0] := 'a';
s1[1] := 'a';
Caption := PAnsiChar(s1);
end;
s1: array of AnsiChar;
begin
SetLength(s1, 100);
Fillchar(s1[0], 5, ord('a'));
Caption := pansichar(s1);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
ac: Array of AnsiChar;
// s: AnsiString;
p: PAnsiChar;
begin
SetLength(ac, 10);
// s := 'abc';
// Move(Pointer(s)^, Pointer(ac)^, Length(s));
// Caption := ac[0] + ac[1];
p := 'abc';
StrCopy(PAnsiChar(ac), p);
Caption := PAnsiChar(ac);
end;这个没问题了,呵呵。