【发布时间】:2018-06-21 20:41:40
【问题描述】:
我有一个结构:
struct A
{
double a;
int c;
double *array;
}
main()
{
A *str = new A[50];
for(int i=0;i<50;i++)
{
str[i].array = new double[5];
str[i].array[0] = 50;
}
.....
Buffer BufA = Buffer(...,..., 50 * sizeof(A),str);
.....
}
在内核中
struct A
{
double a;
int c;
double *array;
}
__kernel void vector(__global A *str)
{
int id = get_global_id(0);
printf("Element - %f",str[id].array[0]);
}
但是在内核中看不到数组中的值。可能是因为在缓冲区中我为结构数组分配了内存,而没有动态数组的内存。我该如何实现?
【问题讨论】:
-
C 和 C++ 不是同一种语言。由于您的 sn-p 中有
new,因此我删除了 C 标签。下次不要用它来回答 C++ 问题。