it looks like zero CUdeviceptr is a device equivalent of the nullptr
// d will be zeroed
//
CUdeviceptr d = 12345;
CUresult error = cuMemAlloc(&d, 0);
assert(0 == d);
assert(1 == error);
// will succeed
//
CUresult ok = cuMemFree(0);
assert(0 == ok);
but can cuMemAlloc() ever return the zero CUdeviceptr on success?