怎么初始化将要存储字符串常量的指针呢

如何初始化将要存储字符串常量的指针呢?
比如:
char *a = "This is a string";
char *b;

我要把 a 指向的字符串常量复制到 b 中,要怎样对 b 进行初始化呢? 
注意下,并不是指针这个变量改为指向 a 的,而是实实在在的复制。
指针 初始化 字符串常量

------解决方案--------------------
b = (char*)malloc(strlen(a) + 1);
strcpy(b, a);
------解决方案--------------------
引用:
1 b = (char*)malloc(strlen(a) + 1);
2 strcpy(b, a);

1 --> 将b指向一个内存区域 +1是因为'\0'
2 --> 库函数,复制这个baidu