ポインタの配列を作成してCUDAメモリにコピーする方法を調べていました。私は私にビットを盗聴されて受け入れ答えvoidへのダブルポインタキャストのアドレス**
int ** devicePointersStoredInDeviceMemory;
cudaMalloc((void**)&devicePointersStoredInDeviceMemory, sizeof(int*)*N);
でこのポストCUDA Double pointer memory copyが、次の行を見つけました。 ダブルポインタのアドレスを渡してvoid**
にキャストする意味はなんですか? &devicePointerStoredInDeviceMemory
はint***
と同じではないので、void***
の代わりにvoid**
にキャストするのはなぜですか?
それは動作しますが、なぜ私は理解できません。
注:これは、標準C++で未定義の動作ですが、WindowsのAPIがそれに依存しています。 –