结构体和数组在内存中的存放有关问题

结构体和数组在内存中的存放问题
比如说:
1、struct  a{
    int i;
    int j;};
struct a b;//b存放在堆里吗?
2、char   ch[10];//ch[10]存放在栈里吗?ch又是存放在哪?
3、char ch[10];
      char *str = "hello word";
      ch = str;       //是把str中的每一个元素都放到对应的字符数组里吗?
ch[10]实际可用空间是12字节,如果有新的数据进栈会不会覆盖后2个字节,比如char或者int类型的数据


------解决方案--------------------
引用:
比如说:
1、struct  a{
    int i;
    int j;};
struct a b;//b存放在堆里吗?
2、char   ch[10];//ch[10]存放在栈里吗?ch又是存放在哪?
3、char ch[10];
      char *str = "hello word";
      ch = str;       //是把str中的每一个元素都放到对应的字符数组里吗?
ch[10]实际可用空间是12字节,如果有新的数据进栈会不会覆盖后2个字节,比如char或者int类型的数据


1 b在栈上
2 在栈上
3 str在常量区。ch = str; 能编译过?