在使用字符串输入的时候一不要忘了最后还默认添加了一个结束标志字符’\0’,
如果是字符数组,是否也注意呢,看一下下面的代码,这个我刚开始用的 时候纠结了一小会儿
目的是将字符串0123456789存到一个空数组里面,这里一开始犯了最低级的毛病,最开始没有考虑结束标志字符’\0’,导致输出有乱码,因此里面用了两个指针,两次memcpy()以进行对比。使用完后,对指针的内存进行释放
//test memccpy()
#include<stdio.h>
#include<string.h>
#incldue<stdlib.h>
#define N 10
//test memccpy()
void use_of_memcpy(void)
{
char mem_data[N+1];
//给目的地址分配内存
char *target ;//= (char*)malloc(sizeof(char)*N);
char *target2=(char *)malloc((sizeof(char))*N+1);
target = mem_data;
memcpy(target,"0123456789",sizeof(mem_data));
memcpy(target2,"1234567890",((sizeof(char))*N+1));
printf("target :%s\n",target);
printf("Target2:%s\n",target2);
puts(target2);
free(target);
free(target2);
}
int main(void)
{
use_of_memcpy();
return 0;
}