With modern operating systems, each process is given one or more segments of system memory where it can store and retrieve information. Each process can request more or less memory as needed, and the request will be acknowlegded by the operating system with the address of the granted memory section. Typically, the process that requested the memory is the only one allowed to read or write it.
An access violation occurs when a process attemps to access a portion of memory assigned to another application, or an unused memory area, without having permission to do so. It is typically the result of a computer bug, for example a wrong pointer. In the popular C programming language, the most frequent cause for access violations is the use of a pointer that has been set to the NULL value, that is, zero. This addressing is always reserved by the operating system, and it is handled as a sure symptom of a serious programming error.