70,037
社区成员
发帖
与我相关
我的任务
分享#include<stdio.h>
int main()
{
char *p1 = "name";
char *p2;
p2 = (char *)malloc(20);
memset(p2,0,20);
while(*p2++ = *p1++){/*0是NUL('\0')的ASCALL值,即你将字符串p2的前20个字节初始化为'\0'*/
}
printf("%s\n",p2);
free( p2 ) /*动态分配的内存一定要释放,否则会造成内存泄漏*/
}
#include<stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char *p1 = "name";
char *p2;
char *pTemp;
p2 = (char *)malloc(sizeof(char)*20);
pTemp=p2;
memset(p2,0,20);
while(*p2++ = *p1++){//当p1=p2='\0';跳出循环,此时这个未就是p2的开始位置
//所以是空
}
printf("%s\n",pTemp);
//要注意的是动态申请空间得要释放掉;
free(pTemp);
return 0;
}
char *p1 = "name";
char *p2;
p2 = (char *)malloc(20);
memset(p2,0,20);
char *p3=p2;//指向原来的p2
while(*p2++ = *p1++){
}
printf("%s\n",p3);