Article View: comp.std.c
Article #1733Re: memcpy
From: Henry Spencer
Date: Fri, 21 Sep 1990 03:11
Date: Fri, 21 Sep 1990 03:11
19 lines
1189 bytes
1189 bytes
In article <1990Sep19.021418.11574@maths.tcd.ie> tim@maths.tcd.ie (Timothy Murphy) writes: >In unzip.c it is assumed that the effect of > buf[0] = c; > memcpy(buf+1, buf, 20); >is to set > buf[0] = buf[1] = buf[2] = ... = buf[21] = c. The effects of invoking memcpy with overlapping operands have never been officially promised, that I recall. ANSI C explicitly says that the implementation is allowed to assume that they do not overlap, and it is the programmer's responsibility to assure this. This sounds like rank-amateur code. If he wants to set all characters in a buffer to the same, memset() will do that efficiently and cleanly. Even if an overlapping memcpy() works, it is not going to be particularly fast. -- TCP/IP: handling tomorrow's loads today| Henry Spencer at U of Toronto Zoology OSI: handling yesterday's loads someday| henry@zoo.toronto.edu utzoo!henry
Technical Details
Message-ID:
<1990Sep21.031142.23718@zoo.toronto.edu>Path:
arc1-ca.pugleaf.net!utzoo!henryReferences:
<1990Sep19.021418.11574@maths.tcd.ie>Show Full Headers
Complete Article Headers
Newsgroups: comp.std.c Path: arc1-ca.pugleaf.net!utzoo!henry From: henry@zoo.toronto.edu (Henry Spencer) Subject: Re: memcpy Message-ID: <1990Sep21.031142.23718@zoo.toronto.edu> Organization: U of Toronto Zoology References: <1990Sep19.021418.11574@maths.tcd.ie> Date: Fri, 21 Sep 90 03:11:42 GMT