extern "C" void foo(double *a, double *b, double *c, int n); __global__ void cudafoo(double *d_a, double *d_b, double *d_c, int n) { int i = blockDim.x*blockIdx.x + threadIdx.x; if (i>>(d_a, d_b, d_c, n); cudaMemcpy(c, d_c, n*sizeof(double), cudaMemcpyDeviceToHost); cudaFree(d_a); cudaFree(d_b); cudaFree(d_c); }