[DUG] StrCopy problem

Ross Levis ross at stationplaylist.com
Sun May 12 17:20:26 NZST 2013


I did read that previously a few times.  Ok, so I should make A longer by 1
character?  I think A is already 10 characters long with a #0 at the end.

 

Anyway, I changed it to the following.

a := 'abcdefghixxxx';

b := 'jklmnopqr';

StrCopy(a,b);

 

Still an access violation in StrCopy.

 

 

From: delphi-bounces at listserver.123.net.nz
[mailto:delphi-bounces at listserver.123.net.nz] On Behalf Of David Moorhouse
Sent: Sunday, 12 May 2013 3:26 PM
To: delphi at listserver.123.net.nz
Subject: Re: [DUG] StrCopy problem

 

Your answer is in the help file

Use StrCopy to copy Source to Dest. StrCopy returns Dest.  

StrCpy does not perform any length checking. The destination buffer must
have room for at least StrLen
<http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate
2/EN/html/delphivclwin32/SysUtils_StrLen at PAnsiChar.html> (Source)+1
characters. 

For length checking, use the StrLCopy
<http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate
2/EN/html/delphivclwin32/SysUtils_StrLCopy at PAnsiChar@PAnsiChar at Cardinal.html
>  function.  



D


On 12/05/13 14:45, Ross Levis wrote:

Doesn't really help.

 

a := 'abcdefghi' does allocate 9 bytes of RAM.  I can access a and b after
it is assigned.  The problem is StrCopy crashes.  I would expect "a" to have
the same string as b once this is executed.

 

Ross.

 

From: delphi-bounces at listserver.123.net.nz
[mailto:delphi-bounces at listserver.123.net.nz] On Behalf Of Keith Allpress
Sent: Sunday, 12 May 2013 10:27 AM
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] StrCopy problem

 

Perhaps:

http://rvelthuis.de/articles/articles-pchars.html

 

 

From: delphi-bounces at listserver.123.net.nz
[mailto:delphi-bounces at listserver.123.net.nz] On Behalf Of Ross Levis
Sent: Sunday, 12 May 2013 2:39 a.m.
To: 'NZ Borland Developers Group - Delphi List'
Subject: [DUG] StrCopy problem

 

var

  a: pChar;

  b: pChar;

begin

  a := 'abcdefghi';

  b := 'jklmnopqr';

  StrCopy(a,b);

end;

 

Question:  Why does this code crash?

 






_______________________________________________
NZ Borland Developers Group - Delphi mailing list
Post: delphi at listserver.123.net.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-request at listserver.123.net.nz with
Subject: unsubscribe

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://listserver.123.net.nz/pipermail/delphi/attachments/20130512/81ca792a/attachment.html 


More information about the Delphi mailing list