Texture Memory Error: memory size or pointer value too large to fit in 32 bit?

I’m not sure what this error means or why I’m getting it when attempting a cudaMemcpy3D.

My code does very much the same as the simpleTexture3D example:

int width = 48;

int height = 48;

int depth = 48;

cudaArray* cuArray;

const cudaExtent extent = make_cudaExtent(width, height, depth);

cudaChannelFormatDesc channel = cudaCreateChannelDesc<float>();

cudaMalloc3DArray(&cuArray, &channel, extent);

float* buffer = new float[width * height * depth];

cudaMemcpy3DParms arrayCopy = {0};

arrayCopy.srcPtr = make_cudaPitchedPtr( (void*) buffer, sizeof(float) * width, width, height);

arrayCopy.dstArray = cuArray;

arrayCopy.extent = extent;

arrayCopy.kind = cudaMemcpyHostToDevice;

	

cudaMemcpy3D(&arrayCopy);

printf("error = %s\n", cudaGetErrorString(cudaGetLastError()));

Result:

memory size or pointer value too large to fit in 32 bit

Any help would be appreciated…