例如,假设我想将字符串"str1"复制到新字符串"str2": 
void function(const char* str1){
    char* str2;
    str2 = (char *) malloc(sizeof(char) * (strlen(str1) + 1));
    strcpy(str2, str1);
    ...
}
malloc的参数应该是:
sizeof(char) * (strlen(str1)+1)
要不就: 
sizeof(char) * strlen(str1)
是的,你需要+1  - strlen返回字符串长度; 存储一个字符串,你需要存储它的长度加上一个额外的NULL终结点.
话虽这么说,在这个具体的例子中(我确信这只是一个例子来说明这一点),你可以使用strdup.