我不知道';无法在c中复制字符串
我无法在函数中复制字符串。一旦我尝试打印字符串,就不会显示任何内容我不知道';无法在c中复制字符串,c,string,copy,C,String,Copy,我无法在函数中复制字符串。一旦我尝试打印字符串,就不会显示任何内容 int read_exit_tr (){ char * buff = (char *) malloc (20 * sizeof(char)); //char * temp; int r = read(0,buff,SIZE_LECTURE); //temp = (char *) malloc (strlen(buff) + 1 ); //memcpy(buff,temp,20); if (r > 0) { pri
int read_exit_tr (){
char * buff = (char *) malloc (20 * sizeof(char));
//char * temp;
int r = read(0,buff,SIZE_LECTURE);
//temp = (char *) malloc (strlen(buff) + 1 );
//memcpy(buff,temp,20);
if (r > 0) {
printf("%s X\n",buff);
//printf("%s X\n",temp);
}else
printf("erreur");
free(buff);
// free(temp);
return 0;
}
在此版本中,buff打印正确。但一旦我取消注释行和print buff和temp,它们都是空的。
谢谢阅读,你能帮我吗?因为你没有在
temp
中放任何东西。您可以从temp
复制到buff
,但应该是另一种方式。read()
不添加空终止符,您不能使用类似strlen()
的函数。@Yasten您的memcpy
是相反的方向。而不是malloc(20*sizeof(char))
使用calloc(21,sizeof(char))
,这会将内存初始化为0,因此字符串将以NUL结尾。21是为NUL终端腾出空间的,为什么不使用malloc(大小讲座)
?