Using Thrust to operate with vectors

Hi,

I’m using Thrust library to do some operations with vectors.Here is a simple example of the code and the error:

int maxthrust(float*a,int dim){

	thrust::device_vector<float> mat(dim);	

	thrust::copy(a,a+dim,mat.begin());

	int max = thrust::reduce(mat.begin(), mat.end(), -1,thrust::maximum<int>());

	return max;

}

int main(){

	float* a_h=(float*)malloc(10*sizeof(float));

  	thrust::sequence(a_h, a_h + 10, 0);

	maxthrust(a_h,10);

}

When I execute there is the following error:

terminate called after throwing an instance of ‘std::bad_alloc’

what(): St9bad_alloc

Aborted

I think it is strange this error because I thought it only happens when there is a very large vector.

Thanks in advance