I once crashed the entire Unix operating system with a one-line statement: int* ptr = malloc(sizeof(int) * (MAX_INT_SIZE+1)); MS-Windows operating system today is pretty stable and won't allow a single program to crash the entire os. I haven't seen such a crash in quite a few years.
Hop in your time machine. Set the date for about 1999. Look into WindowsME, and earlier versions of Windows. After that, the NT kernel came into use from the server line, and that pretty much ended these kinds of shenanigans.
for the pointers you need just include <windows.h> There's nothing magical about it -- it's just the standard run-of-the-mill char pointer. Whether its char* or wchar_t* depends on whether you are compiling your program for UNICODE or not. If you don't need UNICODE for non-English languages then turn it off.