指针被声明
int *v;
并调用这两个函数。
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]);
}
而不是 2s,它显示所有元素都回到 0。我做错了什么?很确定我一直在正确使用指针,但是我错过了什么吗?