谁能告诉我如何在 OpenCL 内核函数中键入一个char*
指针?int*
我试过((int*) char_pointer)
了,但它不工作。
问问题
3604 次
2 回答
12
我认为,您必须使用正确的地址空间来限定指针。
如果您不指定地址空间,__private
则假定,但您的源指针似乎是一个__global
指针(来自您的评论),因此地址空间不兼容。
所以尝试使用(__global int*)
而不是仅仅使用(int*)
.
于 2012-05-07T15:07:33.717 回答
0
将指针填充到联合中,使用 char* 进行初始化,将其与 int* 一起使用:
union {
char *cp;
int *ip;
} ptr;
ptr.cp = allocatedBuf;
a[0] = *(ptr.ip);
丑陋,但至少在 C 中没有演员表的伎俩。这是未定义的行为,但是嘿,你不是在心脏监视器中使用它,也不是在另一端使用核弹头,对吧?
于 2012-05-07T14:34:56.677 回答