title: How to avoid SIGSEGV?
body: <p>I am writing a client-server daemon which have to accept and translate specific message formats, check them submit to submit all activity to DB. Program is multithreaded. So, I started to work, and began to get SIGSEGV in some cases. So I had to redesign my program and start all over. 
  I am wondering, if there are any "best practices" or tips on how to minimize risk of SIGSEGV ?
  I know, that each pointer should be checked before usage and NULLED after deleting, but if there any high level, design tips ?</p>
  
  <p>P.S. Sorry, if my question if quite dummy, but I googled for this topic and did not find any reasonable articles on this topic. All your opinions are appreciated.</p>