【C言語】
静的解析 対 動的解析
gcc -fanalyzer VS gcc -fsanitize

■1.-fanalyzer と -fsanitize

gcc -Wall -Wextra -fanalyzer(静的解析)

gcc -fsanitize=address(動的解析)


■2.動的解析で検出できる問題例

void    w(char  *p,int idx,char c)  {
    p[idx]=c;
}
char    r(char  *p,int idx) {
    return p[idx];
}
int main(void)
{
    char    buf[10] = {0};
    w(buf,10,r(buf,10));
}

配列の領域外(buf[10])をread/write して
プログラムが異常終了するかもしれない
このコードは
gcc -Wall -Wextra -fanalyzer(静的解析)では問題検出できませんが、
gcc -fsanitize=address(動的解析)で問題検出可能です。

静的解析⇒コンパイル時問題が分る
動的解析⇒走行時問題が分る(ただし問題個所を通過しないとダメ)