2D 配列に割り当てたメモリを解放しようとしています。
コードは正常に動作していますが、コンパイル時に常に警告が表示されます。
2 つの異なる方法を試しましたが、毎回新しい警告が表示されます。
int* array = fillArray(); //malloc (n*m*sizeof*array)
...
DeallocateMemory(array, n*m); //Where n and m are length and height
void DeallocateMemory(int* array, int length)
{
for (int i = 0; i < length; i++){
//free(array[i]);
//free((void*)array[i]);
}
}
free(array);
わかりましたので、最初は書きfree(array[i])
ましたが、警告には次のように書かれていました:
* の引数 1 を渡すとfree
、キャストなしで整数からポインターが作成されます 注: 期待されvoid*
ますが、引数は型ですint*
だから私は書いvoid*
たが、今の警告は:
異なるサイズの整数からポインターにキャストする
両方のエラーを取り除くにはどうすればよいですか? ありがとう!