Pointers store a memory location that begins the section in memory for the type defined at their instantiation. The pointer itself holds a very small amount of data, only a location address in memory. The total memory that the pointer points to is determined by the type of the pointer. This allows the data to be accessed without losing information. The negatives of pointers is that if the same memory location is accessed by multiple parts of the code base, the data may be inadvertently corrupted or a race condition implemented.