Notice
Recent Comments
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- 안드로이드
- java
- 스시
- chrome
- github
- 부경대 맛집
- 태국지도
- 태국여행준비물
- 깃
- chart
- 크롬
- 여행지도
- 경성대 맛집
- 태국 여행정보
- 소프트웨어
- SDK
- 삼성소프트웨어멤버십
- 태국여행
- Android
- 맛집
- 깃허브
- 갤럭시 노트
- c#
- 갤럭시 노트 해외판
- Tizen
- 서면 맛집
- 자바
- 타이젠
- 일정관리
- git
- Today
- 0
- Total
- 211,887
DREAM IT, WISH IT, DO IT
[C - 메모리 관리 함수] 본문
문자열과 메모리는 연속된 공간이라는 점에서 공통점이 있기 때문에 문자열 관리 함수와 원형이 비슷하다.
strcpy <-> memcpy
strcmp <-> memcmp
위와 같이 기본적인 동작 방식은 대응되는 문자열 함수와 거의 동일히다. 하지만 몇가지 차이점이 있는데,
- 인수와 리턴값이 다르다. 문자열 함수들은 대부분 char형이지만 메모리 관리 함수들은 임의의 값이 대상이기 때문에
인수와 리턴값이 void 이다. 이 함수들은 바이트 단위로 작업을 하므로 타입에 상관없이 잘 동작한다.
- 메모리 관리 함수들은 길이를 알려 주지 않으면 어디까지 작업 대상인지 인식하지 못한다. 따라서 항상 count 인수가
따라다닌다. 즉, memcpy 함수는 strncpy 함수가 유사하다고 볼 수 있다.
. void *memcpy(void *dest, const void *src, size_t count); int memcmp(const void *buf1, const void *buf2, size_t count); void *memchr(const void *buf, int c, size_t count); void *memset(void *dest, int c, size_t count); void *memmove(void *dest, const void *src, size_t count); .
strcpy <-> memcpy
strcmp <-> memcmp
위와 같이 기본적인 동작 방식은 대응되는 문자열 함수와 거의 동일히다. 하지만 몇가지 차이점이 있는데,
- 인수와 리턴값이 다르다. 문자열 함수들은 대부분 char형이지만 메모리 관리 함수들은 임의의 값이 대상이기 때문에
인수와 리턴값이 void 이다. 이 함수들은 바이트 단위로 작업을 하므로 타입에 상관없이 잘 동작한다.
- 메모리 관리 함수들은 길이를 알려 주지 않으면 어디까지 작업 대상인지 인식하지 못한다. 따라서 항상 count 인수가
따라다닌다. 즉, memcpy 함수는 strncpy 함수가 유사하다고 볼 수 있다.
'Programming > C/C++' 카테고리의 다른 글
| Editplus, Visual Studio Compiler 연동하기 (1) | 2013.02.18 |
|---|---|
| [Linux Kernel] 리눅스 커널 소스입니다. (0) | 2012.10.20 |
| [C - 동적배열] 동적배열 활용 예제 (0) | 2012.01.26 |
| [C - 동적배열] 메모리 재할당을 통한 동적배열 (0) | 2012.01.26 |
| [C - 메모리 관리 함수] (0) | 2012.01.26 |
| [C - 동적배열] 배열 요소의 삽입과 삭제 (0) | 2012.01.26 |
0 Comments