Okay I'm not confused about any of the syntax of pointers, or related items such as '->' and '&'. What worries me is the reference to the heap. In fact it scares the hell out of me. I just need someone to explain what's going on so I can rest at ease. Here's my fear. Say I initialize a char* and store some 256 character string. I write the string, then I create an int* and place who cares at the address its pointing to. What guarantee do I have that the int* isn't going to just randomly point somewhere in the middle of my previous string? How does the compiler decide where to get addresses for these pointers. I know there's malloc, calloc, new delete and free amongst in c/c++, but I frequently see pointers used without. Is it all just on faith that with such a large number of addresses in the heap its "unlikely" you'll piont at or near the same one twice?