。许多语言都有自动源代码检查及审计工具，C语言也有类似工具，像是Lint。可以在程式刚写好时用Lint找出可能有问题的程式，通过Lint后再用C编译器进行编译，许多编译器也可以设定是否要针对一些可能有问题的程式码提出警告。MISRA C是一套针对嵌入式系统的法则，可主要也是避免一些可能有问题的程式码。也有一些编译器、程式库或作业系统可以处理一些非标准C语言的功能，例如边界值检查、缓存溢出侦测、序列化及自动垃圾回收功能。使用像Valgrind或等软体工具，或者连结有特别malloc函式的程式库，有