mallocしてない領域をfree()すると出てくるエラー
malloctest.out(24922,0x1000cddc0) malloc: *** error for object 0x7ffeefbff5b0: pointer being freed was not allocated
malloctest.out(24922,0x1000cddc0) malloc: *** set a breakpoint in malloc_error_break to debug
変数の宣言直後にNULLで初期化すると上記のエラーはでなくなる。
NULLはfree()でスキップされるから?
List *a;
a = NULL;
free()を2重で行っても同様のエラーが出る。
確保してない領域に対してfree()を行うと出てくるエラーだと理解。
malloctest.out(25177,0x1000cddc0) malloc: *** error for object 0x100201bf0: pointer being freed was not allocated
malloctest.out(25177,0x1000cddc0) malloc: *** set a breakpoint in malloc_error_break to debug
このエラーは確保されていない領域に対して、確保されている前提で処理を行うと出てくるエラー。free()で解放した後の領域に対して、値を格納しても同じエラーが出ます。
参考
【C言語】mallocが原因と思われるエラーに対して - 現在C言語... - Yahoo!知恵袋
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10116060110