[vox-tech] malloc() is ... old school?

Micah J. Cowan vox-tech@lists.lugod.org
Thu, 20 Mar 2003 09:20:13 -0800


On Wed, Mar 19, 2003 at 06:08:13PM -0800, Peter Jay Salzman wrote:
> i've heard this from two people now.
> 
> some students are being taught they should stay clear of malloc() and
> instead use calloc() because calloc() is the "old school" way of getting
> memory dynamically.  they're taught that malloc() may not be present in
> all implementations of the C library.  again, because calloc() is "old
> school".  presumably, malloc() is ... new fangled.   ;)

This is absolutely untrue. The first library had malloc(). Always
using calloc() would be a ridiculously inefficient way to obtain
memory if you're going to just set it again anyway.

Even if there is a grain of truth in it, it could only be for
*extremely* old, pre-ANSI implementations which didn't even bother
with being portable, since the first libraries had malloc(), and
malloc() is obviously in the first edition of K&R C.

IMO, the professor (like way too many C teachers) is an idiot.

Anyway, these days *no one* should be worrying about compatibility
with pre-ANSI compilers. Standard C exists on pretty much every
platform, and could easily be ported to the one or two archaic servers
used somewhere in the world which might not have an implementation.

> actually, both people used the words "old school", so i'm assuming
> that's some kind of quote by the professor.
> 
> just for my own self-edification, does anyone know anything about this
> "old school" and "new school" business?  i've never heard of it before.

Actually, even 1989 C standard should be "old school" by now, as
we've had a new standard for 4 years now. Strange that there's still
only one fully-conforming implementation of it... *sigh*... I'd love
to write exclusively in C99 these days, but since it's still abysmally
unportable (GCC's support is still *way* off)... gotta stick to "old
school" C89...

-Micah