>>347
>pt_i = (int *)malloc(sizeof(int)*4);// 配列分のメモリを確保
したのに、
>pt_i = A;// 配列を確保したメモリに代入
したら、mallocした領域が漏れる。
memcpyとか使ってちゃんとコピーしないと意味なしだよ。

>free(pt_i);    //ここでエラー発生
この時点で、pt_iが指す領域は、A。
解放できないのでこけている。