typedef struct {
short D,
short* E,
short* F} NNP;
typedef struct {
short A,
short B,
NNP* R ,
NNP* S,
short } XYZ;
void Test(XYZ * Arg)
{
XYZ * d_Arg;
CUDA_SAFE_CALL( cudaMalloc( (void*) &d_Arg, sizeof(XYZ)));
d_Arg->A=Arg->A;
d_Arg->B=Arg->B;
CUDA_SAFE_CALL( cudaMalloc( (void**) &d_Arg->R, sizeof(NNP)));
CUDA_SAFE_CALL( cudaMemcpy(d_Arg->R, Arg->R, sizeof(NNP),cudaMemcpyHostToDevice) );
CUDA_SAFE_CALL( cudaMalloc( (void**) &d_Arg->S, sizeof(NNP)));
CUDA_SAFE_CALL( cudaMemcpy( d_Arg->S, Arg->S, sizeof(NNP),cudaMemcpyHostToDevice) );
CUDA_SAFE_CALL( cudaMalloc( (void**) &d_Arg->R->E, 240sizeof(short)));
CUDA_SAFE_CALL( cudaMemcpy(d_Arg->R->E, Arg->R->E, 240sizeof(short),cudaMemcpyHostToDevice) );
CUDA_SAFE_CALL( cudaMalloc( (void**) &d_Arg->R->F, 240sizeof(short)));
CUDA_SAFE_CALL( cudaMemcpy(d_Arg->R->F, Arg->R->F, 240sizeof(short),cudaMemcpyHostToDevice) );
TestKernel<<< grid, threads, 0 >>>(d_Arg,d_Arg->A);
}
global TestKernel(XYZ * d_Arg,short Val)
{
here whne i access d_Arg->A,d_Arg->B i get zero or wrong value but Val has correct value of d_Arg->A.
}