I don't see why people get so hung up in garbage collection. The
compiler I mainly use has shipped with a collector since the 90s and it
is still a standard C compiler. If I want to use the collector, all I
have to do is link it with my standard C executable. Does the act of
linking a garbage collector somehow make my code non-standard?
"non-standard" is not a concept used by the C standard - it uses other
terms like "syntax error", "constraint violation", "unspecified
behavior", "undefined behavior", "conforming" and "strictly conforming"
when conveying such judgements.
Such linkage does not render your code non-conforming, it doesn't even
interfere with strict conformance. However, if you don't merely link to
the collector, but actually use it, that would interfere with strict
conformance. That's because the interface to the collector is not part
of any conforming implementation of the C standard library, and the
collector itself cannot be written in strictly conforming C. However,
very few programs are strictly conforming; possibly none that do
anything really useful.
The biggest conformance problem with using garbage collection is that
your code will not be portable to any implementation that doesn't
provide it, or which provides it by an incompatible mechanism. There's
nothing wrong with writing unportable code, so long as it is done
deliberately with a a proper understanding of the consequences.