C语言 字符串指针 char*

完成字符串的复制

#include <stdio.h>
void copy_string(char *from, char *to)
{
    char *p1,*p2;
    p1=from; p2=to;
    for (;*p1!='\0';p1++,p2++)
    *p2=*p1;
    *p2='\0';
}

main()
{char *a="Iam a teacher.";
char  *b="You are a student.";
printf("string_a=%s\nstring_b=%s\n",a,b);
copy_string(a,b); 
printf("string_a=%s\nstring_b=%s\n",a,b);
}

然后程序无法运行 求解 谢谢

char *a="Iam a teacher.";
char *b="You are a student.";

你这个是字符串常量,只能读不能写

得换成
char a[100];
char b[100];