そのため、それぞれがデバイス上の構造体を指しているポインターのリストを割り当てようとしていますが、segfault が発生し続けます。これは通常のmalloc
では問題なく動作しますが、 では問題が発生しcudaMalloc
ます。
struct body //struct holding information for one body
{
int id;
float m; //mass
float a[3]; //acceleration
float v[3]; //velocity
float pos[3]; //x, y, z
} ;
body** devBodies;
cudaMalloc( (void**)&devBodies, n * sizeof(body*) );
for(i = 0; i < n; i++)
{
cudaMalloc( (void**)&devBodies[i], sizeof(body));
}
リスト内の各ポインターが構造体を指すようにします。なぜこれが機能しないのですか?