Since I’m in that Machine Architecture class and working with C now more than ever before, I can appreciate some of this.
NULL pointers are the biggest problem in C/C++, at least in our code. The dual use of a single value as both a flag and an address causes an incredible number of fatal issues. C++ references should be favored over pointers whenever possible; while a reference is “really” just a pointer, it has the implicit contract of being not-NULL.
(Via Dion Almaer.)