I know, I just had like 1 min so I wrote what came first to my mind.. anyways, I am known to use classes, new/delete and all else in C. (i never took time to learn iostream etc.. but I like objects.. my first though is C)
Ilya
In all honesty, I'm using C++ with C too right now because I'm writing a binary file reader to read and load Lightwave objects into a C++ class/object representation (so I can start using my Lightwave models in various applications). In fact, because most all APIs are written in C, like the Python C API and the MySQL C API (not to mention OpenGL), when you're wanting to write a psuedo-OO program (as C++ isn't completely OO) and don't want to bother learning Objective-C which is a pain in the ass, it's probably the only viable way to go (unless you switch programmin languages) -- In my years of working at the Los Alamos National Labs, you'd be so suprised to see how ugly, yet operational most code is. When writing a game engine, its been my experience (not that I have a lot of experience writing game engines), that OO is the best way to go and C++ really lends itself nicely to important OO concepts like inheritance and polymorphism and object message passing (although error handling is less than desirable). For example, there are some things that I need to do with polymorphic STL maps (with dynamic casting) for run-time "type reconstruction".. On the other side though, I hate using cout/cin (because I know for a fact they're just sitting on top of printf which is a far more superior function adding overhead (but you're right, I'm using the STL and C++, why should I be concerned about saving on overhead!!! Hehe)...
So its OK to be a code-******* as long as you have a clear objective and a purpose for doing so. I think the fact that you're being lazy about your code design will kick you in the ass repeatedly for projects to come. Memory management is something a lot of programmers just don't get and I really think we can attribute a lot of the confusion to deceptively simply commands like new/delete and garbage collectors like the one in Java.
Learn about what each type means in terms of memory usage, where it exists in user space, etc. For instance, writing a loader for binary 3d files requires me to work closely with a spec which involves bitmasking out flags, reading in numbers that could either be either sizeof(char) (which is a constant across all C compilers thank god), sizeof(short), sizeof(int), or sizeof(float)..... I have to take into consideration bit-ordering, since the file is Big-Endian, I have to do byte_swaps and byte_swapping a float is a little tricky

because I'm using a x86 processor which is (stupidly) Little-Endian. Good exercise in understanding bytes/bits handling and memory allocation.