If you are going trough an OpenCL Hello World example I am almost certain that you do not have
cl_mem * mMemObject[foo]
That would be the only thing that would make the mMemObject[0] declaration legal. EXC_BAD_ACCESS implies that you are dereferencing an invalid pointer, and this implies that your mMemObject is just cl_mem.
This works if you have declared mMemObject simply with cl_mem mMemObject:
clSetKernelArg(mKernel, 0, sizeof(cl_mem), &mMemObject);