动态二维数组的一个有关问题,关于赋值

求助:动态二维数组的一个问题,关于赋值
以下代码
char** ch=(char**) malloc(sizeof(char*)*h);
for(int i=0;i<h;i++)
ch[i]=(char*) malloc(sizeof(char)*w);
ch[0]="1111111111";
当我再试图用
  ch[0][1]='a';
进行赋值时,编译通过,运行出错,内存访问错误什么的。如果把ch[0]赋值的那一句删掉,只用ch[0][1]='a';就不会有问题。是什么原因,有达人可以解释一下么?


------解决方案--------------------
个人遇见。
ch[0]="11111111",将静态字符串首地址赋给指针ch[0]。
ch[0][1]='a' 试图改变静态字符串,所以报错