<p>What is Dynamic Code Analysis?</p>

<p>How is it different from <a href="https://stackoverflow.com/questions/49716/what-is-static-code-analysis">Static Code Analysis</a> (ie, what can it catch that can't be caught in static)?</p>

<p>I've heard of bounds checking and memory analysis - what are these?</p>

<p>What other things are checked using dynamic analysis?</p>

<p>-Adam</p>

Basically you instrument your code to analyze your software as it is running (dynamic) rather than just analyzing the software without running (static). Also see this
JavaOne presentation comparing the two
.
Valgrind
is one example dynamic analysis tool for C. You could also use code coverage tools like
Cobertura
or
EMMA
for Java analysis.
From Wikipedia's
definition of dynamic program analysis
:
Dynamic program analysis is the
  analysis of computer software that is
  performed with executing programs
  built from that software on a real or
  virtual processor (analysis performed
  without executing programs is known as
  static code analysis). Dynamic program
  analysis tools may require loading of
  special libraries or even
  recompilation of program code.