What's to fear about pointers? Are the popular Operating Systems so primitive that they would actually let some simple C++ program effect it's memory in a negative way? The second something goes wrong, the program crashes. You can be sure of it.
Anyway, some of what you're saying is backwards. You don't create a pointer and place something at the address it's pointing to. You create data in memory, whether standard or dynamic, and then you point to it. Your OS isn't going to place data over data unless you intentionally try to do that. Now, after it's pointing to an address, you can change the value of that memory, at will.
Code:
int main() {
int num = 10; // This is allocated when you run the program.
char let = 'a'; // So is this. The OS is not going to overwrite the 10 with this.
int *ptr1 = # // There, now this is pointing to the address of num.
printf("%d\n", *ptr1); // Your pointer deferenced. Should print 10
num = 5;
printf("%d", *ptr1); // Same deal. Now it prints out 5.
return 0;
}