makaraito さんが書きました:警告で
'関数': 異なる 'const' 修飾子です
と表示され、
freeの引数はconstのついていないvoid*なので、そこにconstがついたポインタを入れてはいけない、ということでしょう。
makaraito さんが書きました:実行すると止まります。ブレークポイントから、停止するのはfreeのとこです。
freeにmallocなどのメモリ管理関数で確保した領域へのポインタではない文字列リテラルへのポインタを渡しているので、未定義動作になります。
makaraito さんが書きました:mallocの時点で怪しいことしてるとは思いますが、
mallocは、
C言語では非推奨の戻り値のキャストをしていることと戻り値をチェックしていないこと以外は問題なく、致命的ではないいでしょう。
その次の行でポインタを上書きしているのがメモリリークにも繋がり、いけません。
バッファの中身の文字列をコピーするには、strcpy関数やstrncpy関数(書き込み先バッファのサイズを指定できるので、strcpy関数より安全)を使うといいでしょう。