diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2001-01-20 22:50:05 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2001-01-20 22:50:05 +0000 |
commit | 8d1fbc991cdaf266fb65adfbe247dcc2375d342b (patch) | |
tree | eed3ab65b8199d1ba9e771360bdb73eabf269411 | |
parent | 4459522c48c5d39fc8fe5773dff44282ce5bb339 (diff) | |
download | perl-8d1fbc991cdaf266fb65adfbe247dcc2375d342b.tar.gz |
Memory management calls documentation.
p4raw-id: //depot/perl@8492
-rw-r--r-- | pod/perlguts.pod | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/pod/perlguts.pod b/pod/perlguts.pod index f38bba37a0..924e993964 100644 --- a/pod/perlguts.pod +++ b/pod/perlguts.pod @@ -1357,17 +1357,27 @@ function). Here is a handy table of equivalents between ordinary C and Perl's memory abstraction layer: - Instead Of: Use: - - malloc New - calloc Newz - realloc Renew - memcopy Copy - memmove Move - free Safefree - strdup savepv - strndup savepvn (Hey, strndup doesn't exist!) - memcpy/*(struct foo *) StructCopy + Instead Of: Use: + + t* p = malloc(n) New(id, p, n, t) + t* p = calloc(n, s) Newz(id, p, n, t) + p = realloc(p, n) Renew(p, n, t) + memcpy(dst, src, n) Copy(src, dst, n, t) + memmove(dst, src, n) Move(src, dst, n, t) + free(p) Safefree(p) + strdup(p) savepv(p) + strndup(p, n) savepvn(p, n) (Hey, strndup doesn't exist!) + memcpy/*(struct foo *) StructCopy(src, dst, t) + + t type + p pointer + ck cookie for the memory region (now unused) + n number of elements + src source pointer + dst destination pointer + +Notice the different order of arguments to C<Copy> and C<Move> than used +in C<memcpy> and C<memmove>. =head2 PerlIO |