C語言一維數組復制


/*
* 通過自定義的函數memcpy實現復制功能,優點是不需要引用庫函數
* 在windows平台下,通過sizeof測試發現:
                                    int     4字節
                                    float    4字節
                                    double 8字節
*/
#include <stdio.h>

void *memcpy(void * des,void const *src,size_t len);
void print(int *data,size_t n); 

int main(void)
{
    float des[10]={0};
    float src[10]={0,1,2,3,4,5,6,7,8,9}; //float int double都能夠通過memcpy函數實現復制功能
    printf("%d",sizeof(src));
    print(des,10);
    memcpy(des,src,sizeof(src));
    print(des,10);

    return 1;
}

void print(float *data, size_t n)
{

    int i=0;
    printf("\n");
    for(;i<n;i++)
        printf("%7.2f ",data[i]);

    printf("\n");
}

void *memcpy(void *des,const void *src,size_t len)
{
    char * result =des;
    const char * from = src;
    assert(des&&src);
    while(len--)
    {   
        *(result++) = *(from++);
    }   
    return des;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM