string型变量如何装入pchar型的内存区?(50分)

  • 主题发起人 主题发起人 wahoo
  • 开始时间 开始时间
W

wahoo

Unregistered / Unconfirmed
GUEST, unregistred user!
定义如下:
var p:pchar;
s:string;
...

begin
s:='12345678'

getmem(p,size);

请问如何将string型变量s的值'12345678'装入p所指的内存区域,即如何简单实现 p^:='1';
inc(p);
p^:='2';
...
inc(p);
p^:=8
?
thanks.
 
strlcopy(p,pchar(s),Length(s));
 
p := PChar(s);
ShowMessage(p^);
inc(p)
ShowMessage(p^)
这个不行吗?
 
function StrPCopy(Dest: PChar
const Source: string): PChar;
 
lstrcpy(p,PChar(s))
 
getmem(p,Length(s));
StrPCopy(p,s);
 
yhfang: 这个不行的, 你只是简单地吧p指向了s.


可以先用stralloc分配足够的空间, 然后用
strpcopy或者strlcopy

BTW,
wahoo: inc(p)是不行的, 不过你可以用(p+1)^, (p+2)^这种方式.
 
接受答案了.
 
后退
顶部