当我想从字符串中复制2个字符时,我无法制作strncpy
,但是当我想复制3个字符时,相同的代码正常工作。
在这个示例中,我需要strncpy()
将12存储到'变量:
void main(){
const char* from = "12345678";
char *to = (char*) malloc(3);
strncpy(to, from, 2);
printf("%s", to);
free(to);
}
但是当strncpy(to, from, 3)
与malloc(4)
一起使用时,它可以正常工作。任何使这项工作的解决方案?
答案 0 :(得分:3)
您忘记使用终止零附加目标字符串。
char *to = (char*) malloc(3);
strncpy(to, from, 2);
to[2] = '\0';