Access Violation
From Unofficial BOINC Wiki
[edit] General
An Access Violation occurs when any of the following occur:
- a pointer is used before it has been allocated, or
- a pointer is used after it has been deleted, or
- a pointer is used after a pointer allocation or pointer reallocation fails, or
- a pointer is used that attempts to access protected memory areas (should not occur if the pointers are maintained through the proper use of the pointer functions, but may occur if the developer does direct and inappropriate pointer manipulation), or
- the stack runs out of space, or
- the heap runs out of space.
Any of these situations cause the program to stop working. Running the stack out of space is usually caused by runaway recursion (a recursive function that repeatedly calls itself, and does not stop the recursion). Using a pointer that failed allocation is usually caused by not checking returned pointers against NULL. Using a pointer that has not been allocated, or has been deallocated, is usually caused by code complexity that the programmer failed to grasp (an unforeseen code path), and may be contributed to by inappropriate language selection. (Although C++ uses pointers, not all modern languages that are suitable for use by a programmer do.)
Access violations are a kind of Bug. The only good bug in code is a dead bug. Therefore, when all (enough) bugs are squashed and killed the program is released. Besides, or instead of, squashing a bug we might just fold, bend, spindle, or mutilate them.

