Table of contents

    C언어에서 배열을 복사하는 여러 방법이 있습니다.

     

    배열의 값을 직접 대입하거나, memcpy를 사용할 수도 있습니다.

     

    임베디드 환경에서는 간혹 memcpy를 지원하지 않거나, 원하는 동작을 안하는 경우가 있어서 포인터를 이용해서 활용하기도 했습니다.

     

    기호에 맞게 사용하시면 됩니다.

     

     

     

    전체코드

     

    Option 1 : 배열값 직접 대인

    Option 2 : memcpy 함수 활용

    Option 3 : 포인터 활용

     

    #include <stdio.h>
    #include <string.h>
    int main(void)
    {
        int i;
        unsigned char myBuf[100];
        unsigned char cpyBuf[100];
        for(i=0; i<100; i++)
        {
            myBuf[i] = i;
            cpyBuf[i] = 0;
        }
        
        //unsigned char * pBuf;
        //pBuf = myBuf;
    
        /* Option 1 */
        for(i=0; i<100; i++)
        {
            cpyBuf[i] = myBuf[i];
        }
    
        /* Option 2 */
        memcpy(cpyBuf, myBuf, 100);
    
    	
        /* Option 3 */
        for(i=0; i<100; i++)
        {
        	cpyBuf[i] = *pBuf;
         	pBuf++;
        }
        
    
        return 0;
    }