使用constant memory遇到的问题

在.cu 文件中定义了__constant__ int p[4], 然后用cudaMemcpySymbol对p进行了初始化。
在另一个.cuh文件中定义了kernel 函数
global void func(…, …, int *d_p)
{
int n = d_p[0];
}

然后在.cu 文件中调用了该kernel函数,并且将p 作为参数传递进去即 func(…, …, p)
但最后通过将n导出到内存中查看发现并不等于 p[0],请教各位高手是不是对constant mempry用错了

换个调用涵数呢?

问题已解决,使用constant memory就是为了直接读取它的值,所以是不能作为函数参数传递的,可以将其定义在kernel函数的文件中,再在另一个.cu文件中对其赋值