`0xC0000005` = `STATUS_ACCESS_VIOLATION`:進程嘗試讀寫**未映射/無權限**的內存地址。地址 `0x00A97000` 通常位於**堆區**,提示動態分配內存訪問錯誤。
| 原因 | 代碼特徵 | 檢測工具 |
|---|---|---|
| 指針越界 | `arr[i]` i ≥ size / `ptr + offset` 超出分配塊 | AddressSanitizer (`-fsanitize=address`)、Valgrind |
| 使用已釋放內存 | `free(ptr)` 後繼續 `*ptr` / `delete p` 後 `p->method()` | Valgrind `--track-origins=yes`、Dr. Memory |
| 未初始化指針 | `int *p; *p = 10;` (野指針) | 編譯器警告 `-Wuninitialized`、靜態分析 |
| 棧溢出破壞鏈接 | 大局部數組 `char buf[1000000];` / 無限遞歸 | 增大棧 `/F` (MSVC) `-Wl,--stack` (GCC) |