On 03/22/2014 04:00 PM, Tom Lane wrote:
Apart from what the page says, I also think of casting malloc() as bad
style and felt the need to bring this up. But since you pointed out why
you don't want to remove the cast, I withdraw my previous suggestion.
That argument is entirely bogus, as it considers only one possible way
in which the call could be wrong; a way that is of very low probability
in PG usage, since we include <stdlib.h> in our core headers. Besides
which, as noted in the page itself, most modern compilers would warn
anyway if you forgot the inclusion.
On the other side, coding with the explicit cast helps guard against far
more dangerous coding errors, which the compiler will *not* help you with.
What if myextra is actually of type "int64 *"? In that case you probably
meant to make enough space for an int64 not an int. But without the cast,
you won't be told you did anything wrong. This is a particular hazard if
you change your mind later on about the type of myextra. (A colleague
at Salesforce got burnt in exactly that way, just a couple days ago.)
So perhaps this alternative:
myextra = malloc(sizeof *myextra);
Coding style matters to me, but I was and still am far from insisting on
Sent via pgsql-hackers mailing list (email@example.com)
To make changes to your subscription: