336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 : 


memcpy_s 와 매우 흡사하나 원하는 구역을 복사해서 옴긴다는 개념입니다.


예제의 코드에서 memcpy_s 부분을  memmove_s 함수 이름을 바꿔줘도 결과는


동일합니다. 가독성에 맞게 사용하는것을 권장합니다.



소스코드 : main.c

#include <stdio.h>

#include <string.h>

#include <malloc.h>


int main(void)

{

char *pString = "Hello JunmoZzi";

char *pAdd = " ^^a ha ha ha!";


char *pBuffer = NULL;

int nSize1 = strlen(pString) + 1;

int nSize2 = strlen(pAdd) + 1;

pBuffer = calloc(nSize1 + 1, sizeof(char));


if (pBuffer == NULL)

{

puts("memory 할당 실패");

}

else

{

puts("memory 할당 성공");

printf("메모리 주소 : %d\n", pBuffer);

//strcpy_s(pBuffer, nSize1, pString);

memmove_s(pBuffer, nSize1, pString, nSize1);

}


puts("Run memcmp : pBuffer, pStirng");

if (memcmp(pBuffer, pString, nSize1) == 0)

{

puts("동일한 메모리");

}

else

{

puts("동일하지 않는 메모리");

}


puts(pBuffer);

puts("메모리 재 할당");


realloc(pBuffer, nSize1 + nSize2);

pBuffer[nSize1 - 1] = ' ';// 문자열의 끝 \0을 공백으로 변경


 //strcat_s(pBuffer, nSize1+nSize2, pAdd);

memmove_s(pBuffer + nSize1, nSize2, pAdd, nSize2);

printf("메모리 주소 : %d\n", pBuffer);

puts(pBuffer);


free(pBuffer);

pBuffer = NULL;

return 0;

}




결과 : 




#c언어, #c언어입문, #프로그램입문, #memmove_s

c언어, c언어입문, 프로그램입문 ,memmove_s

'Programing - C > C Basic grammar ' 카테고리의 다른 글

097 포인터 개념  (0) 2017.08.04
096 memset  (0) 2017.08.04
094 memcmp 두메모리 비교  (0) 2017.07.28
093 memcpy_s 메모리 복사  (0) 2017.07.28
092 realloc 메모리 재할당  (0) 2017.07.28

+ Recent posts