C++ memset memcpy

一、

二、memcpy

void *memcpy( void *dest, const void *src, size_t count );

其总共有三个参数

第一个参数( void *dest ):用于存储复制内容

第二个参数( const void *src):复制的数据源

第三个参数( size_t count ):要被复制的字节数

  

void *memcpy(void *dest, const void *src, int count)
{
    void *ptr = dest;
    if (NULL == dest || NULL == src || count <= 0)
    {
        return NULL;
    }
    while (count--)
    {
        *(char *)dest++ = *(char *)src++;
    }
    return ptr;
}
 int arr1[3]={1,2,3};
    int arr2[5];

    memcpy(arr2,arr1,3*sizeof(int));

    for(int i=0;i<3;i++)
    {
        std::cout<<arr2[i]<<std::endl;// 输出 1 2 3
    }

错误用法

    int arr1[3]={1,2,3};
    int arr2[5];

    memcpy(arr2,arr1,3);

    for(int i=0;i<3;i++)
    {
        std::cout<<arr2[i]<<std::endl;// 输出 1795162113 0 520691440
    }
    char src[7]="abcdef";
    char dest[7];

    memcpy(dest,src, strlen(src)+1);

    std::cout<<"dest="<<dest; //输出 dest=abcdef

猜你喜欢

转载自www.cnblogs.com/ike_li/p/12448604.html