各位老师好:
我的代码如下:
var
p1:pchar;
s1:string;
begin
s1:='abcded';
strpcopy(p1,s1); //程序走到这一步时出错,提示access violation错误。
end;
为什么会出现错误,请指教。
后来我把程序修改如下:
var
p1:array[0..100] of char;
s1:string;
begin
s1:='abcded';
strpcopy(p1,s1);
end;
程序不提示错误,请问array[0..n] of char 与pchar是否同一类型?
两者有什么区别?
我的代码如下:
var
p1:pchar;
s1:string;
begin
s1:='abcded';
strpcopy(p1,s1); //程序走到这一步时出错,提示access violation错误。
end;
为什么会出现错误,请指教。
后来我把程序修改如下:
var
p1:array[0..100] of char;
s1:string;
begin
s1:='abcded';
strpcopy(p1,s1);
end;
程序不提示错误,请问array[0..n] of char 与pchar是否同一类型?
两者有什么区别?
解决方案 »
- 64linux位下 用lazarus 编译共享库,在哪输-fPIC
- 然后让指定的外部程序调用自身
- 在线请教高手!delphi中如何解决TShortcutBar.AddImageList(const ImageList: IDispatch);的使用
- 网络高手请帮忙!如何实现即插即用功能?
- 高分求字符串比较的解决原代码——100分
- delphi怎么让进程成为关机时最后被关闭的程序
- 请问在quickrep中用qrexpr控件怎样计算出所有字段的值?
- 急!!!服务器上面的数据下载下来以后,在客户端以怎样的形式存储
- 怎样用delphi开发如DUMeter流量统计软件
- 提数据库问题兼了解如何送分,在线静候佳音
- 请问各位高手:用DELPHI如何定义一个学生记录?(在线等待)
- delphi中调用按钮事件?
begin
s1:= 'abcded ';
p1 := GetMemory(Length(s1)+1);
strpcopy(p1,s1); //程序走到这一步时出错,提示access violation错误。
end;
//函数解释,需要分配空间
function StrPCopy(Dest: PChar; const Source: string): PChar;DescriptionStrPCopy copies a Pascal-type string Source into a null-terminated string Dest. It returns a pointer to Dest.StrPCopy does not perform any length checking. The destination buffer must have room for at least Length(Source)+1 characters.
vP:PChar;//一个Char类型的指针
vv:array[0..99] of Char;//声明数组的时候就分配空间
vStr:string;
begin
vStr:='tdsdfghgfd';
vP:=@vv;//把数组的地址给指针,也可以这样写@vv[0],把数组的首地址给指针
strpcopy(vP,vStr);
end;
PChar是Char的指针类型,类似的还有Pinteger,Pword等等
指针指向已经分配内存的地址才能操作
p:PChar;
s:string;
begin
s:= 'tdsdfghgfd ';
p:=@s[1];
end;