/*
#include <stdio.h>
void main() {
void *ptr;
int a = 3;
char b = 'A';
ptr = (int *)&a; //ptr이 int 형이 아니라서 (int*)해줘야함
printf("%d\n", *(int*)ptr); //void형이라서 형변환 2번 해줘야함
ptr = (char*)&b;
} */
//수학에서의 집합 : set - 서로 다른 원소들의 모임
// {1,3,5} 1 {1,3,5}
//bag = {1,3,5} 1 {1,3,5,1}
========================================================================
for (int i = 0; i < 3; i++) {
if (pA[i] == num) return 1;
}
return 0;
}
void add(int *pA, int num) {
if (check(pA, num)) {
printf("중복임");
return;
};
pA[3] = num;
}
void main() {
int arr[5] = { 1,3,5 };
int num;
printf("{");
for (int i = 0; i < 3; i++) {
printf("%d", arr[i]);
if (i == 3) break;
printf(", ");
} printf("\n추가할 원소를 입력하세요 : ");
scanf("%d", &num);
add(arr, num);
printf("{");
for (int i = 0; i < 4; i++) {
printf("%d", arr[i]);
if (i == 3) break;
printf(", ");
} printf("}\n");
}
/*{1,2,3,4,5,6,7,8}
{1,2,3,4,0,5,6,7,8} // memmove
{1,2,3,4,9,5,6,7,8} // insert_arr
*/
========================================================================
#include <stdio.h>
int size = 8;
void memmove(int *pA, int index) {
int arr[10] = { 0 };
for (int i = 0; i < size; i++) {
arr[i] = pA[i];
if (i > index)
arr[i] = pA[i-1];
}
for (int i = 0; i < size; i++) {
pA[i] = arr[i];
}
pA[index] = 0;
}
//메모리의 특정 소스를 몰적 위치로 복사하며, 기존에 있던 데이터는 size 만큼 이동
// 1. 요소가 복사될 위치 필요
// 2. 복사할 요소가 있는 위치
// 3. 이동할 사이즈
void insert_arr(int *pA, int index, int num) {
size++;
memmove(pA, index);
pA[index] = num;
}
void main() {
int arr[10] = { 1,2,3,4,5,6,7,8 };
printf("memmove() 전\n");
for (int i = 0; i < size; i++) {
printf("%2d", arr[i]);
}
insert_arr(arr, 3, 4);
memmove(arr, 3);
printf("\nmemmove() 후\n");
for (int j = 0; j < size; j++) {
printf("%2d", arr[j]);
}
}
댓글 없음:
댓글 쓰기