Related to Constant memory: Invalid device symbol

The code snippet is as follows:

constant float c_gradients[3][100];
CUDA_SAFE_CALL(cudaMemcpyToSymbol(c_gradients[0], d_gradients[0], 100 * sizeof(float), 0, cudaMemcpyDeviceToDevice));
CUDA_SAFE_CALL(cudaMemcpyToSymbol(c_gradients[1], d_gradients[1], 100 * sizeof(float), 0, cudaMemcpyDeviceToDevice));
CUDA_SAFE_CALL(cudaMemcpyToSymbol(c_gradients[2], d_gradients[2], 100 * sizeof(float), 0, cudaMemcpyDeviceToDevice));

The code compiles successfully, at time of execution the second occurrence of cudaMemcpyToSymbol reports “invalid device symbol”.
Is it not allowed to use constant memory as 2D array ?