上級 › free(): double free detected in tcache の原因と直し方 › パターン4
free(): double free detected in tcache の原因と直し方
同じポインタに対してfree()を2回呼び出したときに検出されるエラーです。
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int main(void) { 5 int *n = malloc(sizeof(int)); 6 *n = 5; 7 free(n); 8 ________________________ ^ 9 return 0; 10 }
free(): double free detected in tcache 2
Aborted
空欄を埋めてコンパイル・実行を通す
解放したら即座にNULLを代入する習慣で、二重解放を未然に防げます。
次の問題