On 2005-08-18 12:08, Sergey Matveychuk <[EMAIL PROTECTED]> wrote: >Chuck Swiger wrote: >>>What is pointer coercion? I have no pointer before malloc() returns. >> >> Right. Well, malloc returns a (void *), but most people want to use the >> memory malloc returns to hold their own arrays, structs, whatever, which >> means that you need to be able to coerce the (void *) malloc gave you >> into whatever pointer type you want to actually use. >> >> So the memory malloc gives you needs to be aligned so that it's OK to be >> used for even the most restrictive datatype known to the system, >> commonly 8, 16, or 32 bytes. > > Pointer coercion means a type cast? I see now. > I read it as 'force change of pointer value' before.
It may be surprising, but casting back and forth *MAY* change the value of the pointer. Think of something like ``memory models'' in MS-DOS and pointers that have both two parts, i.e. a segment address and an offset in the segment. Add to this a weird rule that says segment values are shifted up by 8 bits and then added to the offset value, mix a compiler that uses optimizations in the cocktail too, and you get strange things :-) _______________________________________________ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"