cmallcで割り当てられた符号なしポインタ配列を解放するための最良の方法は何ですか?
uint8_t *buf;
buf = cs_calloc(ca->len + 13);
私はこれが好きですが、コンパイルの警告が表示されたので、これは正しくないことを知っています:
警告:「free」の引数1を渡すと、キャストなしで整数からポインタが作成されます
for (i = 0; i < ca->len + 13; i++)
{
free(buf[i]);
buf[i] = NULL;
}
free(buf);
これがcs_callocコードです:
void *cs_calloc(size_t size){
return (calloc (1,size));
}
私の質問は1です。私が解放する方法、buf、つまり、ループ内の配列の各要素を最初に解放することを意味します(free(buf [i])は正しいですか?配列の要素を解放する必要がありますか?その上
- なぜそのコンパイル警告が表示されるのですか?それが間違っている場合は、割り当てられたメモリを解放する方法を誰かが修正できますか(修正方法のコードを教えてください)。
前もって感謝します