Another malloc question
Chip Salzenberg
chip at ateng.com
Thu Oct 26 08:42:28 AEST 1989
According to rhg at cpsolv.UUCP (Richard H. Gumpertz):
>Suppose a system has one data type "X" that must be aligned on a 32-byte
>boundary, but all other objects can be aligned on a 2-byte boundary.
>The current standard seems to prohibit malloc from special-casing requests
>for less than size X and returning only even alignment.
This feature serves a useful purpose. Suppose you have pointers to large
structures, and you need more than one special pointer value. NULL isn't
enough. You can get a properly aligned structure pointer by calling
malloc(1); use this pointer as the magic cookie. You can't dereference such
a pointer, but you can assign it and compare against it.
Such a ploy can save you some memory, since you don't have to declare a
static structure just to use its unique address as a magic cookie.
[I hope that this strategy doesn't run afoul some obscure restriction...]
--
You may redistribute this article only to those who may freely do likewise.
Chip Salzenberg at A T Engineering; <chip at ateng.com> or <uunet!ateng!chip>
"'Why do we post to Usenet?' Naturally, the answer is, 'To get a response.'"
-- Brad "Flame Me" Templeton
More information about the Comp.lang.c
mailing list