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
- 안드로이드
- 스시
- git
- c#
- chart
- 여행지도
- Android
- 갤럭시 노트
- 깃허브
- 서면 맛집
- 깃
- 경성대 맛집
- chrome
- 부경대 맛집
- 타이젠
- 태국지도
- 태국여행준비물
- 태국 여행정보
- github
- 일정관리
- 태국여행
- 자바
- 크롬
- 갤럭시 노트 해외판
- 맛집
- 소프트웨어
- Tizen
- java
- 삼성소프트웨어멤버십
- SDK
- Today
- 0
- Total
- 211,887
DREAM IT, WISH IT, DO IT
[C - 동적배열] 배열 요소의 삽입과 삭제 본문
배열은 C언어가 제공하는 가장 기본적인 자료구조이며 작고 빠른 성능을 보이는 장점을 가진다.
하지만 한 가지 단점이 있는데 배열 요소가 연속된 메모리 공간에 배치되어 있어야 하므로 중간의 요소를 삭제 하거나 새로운 요소를 삽입할 수 없다는 점이 있다. 배열은 일반적으로 삽입, 삭제가 안되는 것으로 알려져 있는데 이는 일종의 고정 관념이다.
이 예제는 문자형 배열에 요소를 삽입, 삭제 하는 방법을 보여준다.
하지만 한 가지 단점이 있는데 배열 요소가 연속된 메모리 공간에 배치되어 있어야 하므로 중간의 요소를 삭제 하거나 새로운 요소를 삽입할 수 없다는 점이 있다. 배열은 일반적으로 삽입, 삭제가 안되는 것으로 알려져 있는데 이는 일종의 고정 관념이다.
이 예제는 문자형 배열에 요소를 삽입, 삭제 하는 방법을 보여준다.
#include stdio.h
#include string.h
char ar[16] = "ABCDEF";
void Insert(int index, char ch)
{
memmove(ar + index + 1, ar + index, strlen(ar) - index + 1);
// 해당 index 뒤로 한칸을 밀어서 복사해버린다.
ar[index] = ch;
}
void Delete(int index)
{
memmove(ar + index, ar + index + 1, strlen(ar) - index);
// 해당 index 값을 덮어씌워 버린다.
}
void Append(char ch)
{
Insert(strlen(ar), ch);
// 해당 길이 뒤에 추가.
}
int main ()
{
printf("처음 : %s \n",ar);
Insert(3, 'X');
printf("index 3에 X 삽입 : %s \n",ar);
Delete(5);
printf("index 5에 제거 : %s \n",ar);
Append('S');
printf("S 추가 : %s \n",ar);
return 0;
}
'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