Your time would be better served becoming a better programmer than blaming your errors on someone or something else. Always assume it's your code rather than a fairly well established code base like a compiler. The compiler will warn you of many things and it does type checking on the parameters so I'm not sure what you are talking about. Blame your code not the compiler for failing to do everything for you.
However, the compiler should check that the parameters bing passed to ach function are the same type. lcc-Win32 didn't generate any warnings or errors and dcidd to corrupt some strings so the square kept coming up under th user name column (this was probably having an effct on the memory. I decided to debug th application mainly to fix this bug, not the memory leak.
This has nothing to do with C or with the compiler. The compiler doesn't care what data types Windows uses. Windows.h defines all the data types that Windows uses and while I agree it's a mess the real blame goes to Microsoft Windows Dev team rather than the compiler team.
It does get annoying with all the slightly different data types that are defind in windows.h and I have to keep going back to msdn to find what params must be passed to each function. Testing it now, the program does not undergo any rapid increase in memory usage.