C applications use pointers. A lot. And it is easy to make a mistake with a pointer, producing an illegal memory reference or unwanted program behavior. A real problem with finding an error with a pointer is that the damage may occur long before any application symptoms occur. For instance, one can store a value indirect through a dangling pointer, damaging memory now used for another purpose. A program crash may occur far later than the wild store, making the actual problem very difficult to find.
The C MemorySafety Checker is a tool designed to catch errors with array accesses and pointers at the moment the access is erroneous, e.g., for the example, at the moment of the wild store.
More details can be found at
Ira Baxter, CTO Semantic Designs