ポインタが宣言されています
int *v;
そして、2つの関数が呼び出されます。
createMemObjects(M, N, v, context);
transferToDevice(M, v, commands);
したがって、int * pvを渡す最初の関数では、配列を埋めます。
pv = malloc(sizeof(int) * M);
memset(pv, 0, sizeof(int)*M);
for (int i = 0; i<M; i++) {
pv[i] = N; //Initialise every element of vector with N.
printf("Element %d: %d\n", i, pv[i]);
}
印刷は、pvがN=2で満たされていることを示しています。
* pvを引数として使用する後の関数では、同様の印刷ループを使用します。
for (int i = 0; i<M; i++) {
printf("Element %d: %d\n", i, pv[i]);
}
そして、2の代わりに、すべての要素が0に戻ることを示しています。何が間違っているのでしょうか。ポインタを正しく使用していることは確かですが、見逃しているものはありますか?