structure navigation

Discussion created by david_aiken on Oct 28, 2009
Latest reply on Oct 29, 2009 by david_aiken

hi all..

I'm passing in an array of structures, with the size of each structure to a kernel. The first member of the structure is a uint and i would like to be able to change only this member within the kernel. I've tried this:

typedef struct


unsigned int dataOfInterestToKernel;

char s[64] notOfInterestToKernel;


AStruct data[40];

call clEnqueueNDRangeKernel with pointer to data[], sizeof(AStruct) using 40 threads.



__kernel void test(__global char *structData, uint structSz)


    uint ndx = get_local_id(0);

    uint* s = (uint*)(structData + ndx *structSz);

    *s = ndx;


Unfortunately the kernel doesn't build:


error: invalid type conversion

      uint* s = (uint*)(structData + ndx * structSz);

Is there a good way to do this? It is possible to do it in CUDA.