in cuda global function wrong error

Hello everyone,
here is my code ,the problem is why When i run this function the data int * indx and int *begin and int *end the value of them will change . and i only change the int * output in code . how to change my code then ?
extern “C” global
void caul_dis(double datax,double datay,double * dataz,int outdata,int indx,int begin,intend,int size,double minx, double maxx, double miny, double maxy, double minz, double maxz,int d_neib,double disd,int com_dis)
{
int * tmp;
int i = blockIdx.x
blockDim.x + threadIdx.x;

	int dimx = (maxx - minx)/disd+2;
	int dimy = (maxy - miny)/disd+2;
	int dimz = (maxz - minz)/disd+1;
	int idxz = (dataz[i]-minz)/disd;
	int idxy = (datay[i]-miny)/disd;
	int idxx = (dataz[i]-minx)/disd;

	int idx = idxz*dimy*dimx+dimx*idxy+idxx;
	int ibegin = begin[idx];
	int iend = end[idx];
	
	bool b_mov =false;
	if(ibegin>iend||ibegin==-1||iend==-1)
	{
		 b_mov = true;
	}
	if(!b_mov)
	{
		int num=0;
		for(int j=ibegin;j<=iend;j++)
		{
		  
			int dataindx = indx[j];
			double distance = sqrt(((dataz[i]-dataz[dataindx])*(dataz[i]-dataz[dataindx]))+((datay[i]-datay[dataindx])*(datay[i]-datay[dataindx]))+((datax[i]-datax[dataindx])*(datax[i]-datax[dataindx])));
			if(distance<disd)
			{
				num++;
			}
			if(num>=com_dis)
			{ 
				outdata[i]= 0;
				j= iend+1;
				
			}
		}
		if(num<=com_dis)
		{
		outdata[i]= 1;
		
		}else if(num>com_dis)
		{
		outdata[i]= 0;
		}
	}	

};

i am confused , and i got a wrong error