목록STUDYING/C (11)
MY MEMO
#include #include int main() { //memory 할당 int*Marr = (int*)malloc(sizeof(10)); //memory 할당과 함께 초기화 int*Carr = (int*)calloc(1, sizeof(10)); //size 다시 설정 int*Rarr = (int*)realloc(Carr,10*sizeof(int)); return 0; }
Macro#include #define COUNT 10 //설정 #undef COUNT //해제 #define COUNT 20 //설정 #define PRONT_NUM(x) printf("%d\n",x) #define PRINT_NUM3(x) printf("%d\n",x);\ printf("%d\n",x+1);\ printf("%d\n",x+2); #define SWAP(a, b, type) do { \ type temp; \ temp = a; \ a = b; \ b = temp; \ } while (0) #define CONCAT(a,b) a##b #define EXECUTER(x) hello##x() #define DEBUG // DEBUG 매크로 정의 #define DEBUG_LEVEL 2 // 2..
Array#include #include int main() { // 요소가 10개인 배열 int numArr[10]; // 배열의 범위를 벗어나는 인덱스 int index = 10; // 배열의 크기(요소의 개수)를 구함 int count = sizeof(numArr) / sizeof(int); /* 2차원 배열의 index를 구할 때 int col = sizeof(numArr[0]) / sizeof(int); int row = sizeof(numArr) / sizeof(numArr[0]); */ //1차원 배열 메모리 할당 int *numArr1 = (int*)(malloc(sizeof(10))); //int *numArr1 = (int*)(malloc(sizeof(int)*10)); numArr1[..
#define _CRT_SECURE_NO_WARNINGS #include enum DayOfWeek{ Sunday = 0, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday }; int main() { enum DayOfWeek week; week = Tuesday; printf("%d", week); return 0; }
#include #include int compare(const void*left, const void*right) { //(int*)left : void 포인터를 int로 변환한 뒤 역참조 return (*(int*)right - *(int*)left); //내림차순 //return (*(int*)left - *(int*)right); //오름차순 } /* quick sort란? n(log(n)) pivot값을 둔다 (중앙) pivot > 현재 값 : 왼쪽 pivot < 현재 값 : 오른쪽 반복 */ int main() { //const : 상수를 만듬 / 변경 불가능 int(*cmp) (const void*, const void*); cmp = &compare; int iarray[] = { 1,2,..
Union은 메모리를 공유한다 #define _CRT_SECURE_NO_WARNINGS #include /* union을 쓰는 이유 -> size를 줄이기 때문! -> 통신을 다룰 때 가장 적은 사이즈를 사용하기 위해 -> union은 변수 중 가장 큰 size를 최대로 둠 */ union box { int val; int ball; char character; }; struct operator{ int type; union { int intNum; float floatNum; double doubleNum; }; }; union Coins { struct { int quarter; int dime; int nickel; int penny; }; int coins[4]; }; int main() { un..
#define _CRT_SECURE_NO_WARNINGS #include #include typedef struct node { int val; struct node_t* next; }node_t; node_t*head; void pop_head() { if (head == NULL) { printf("There is no head\n"); return; } node_t*temp = head; head = temp->next; free(temp); } void pop_last() { if (head == NULL) { printf("there is no head\n"); return; } node_t * current = head; node_t*current_next = current->next; whi..
#include int main() { char vowels[] = { 'a','e','i','o','u' }; char *pvowels = &vowels; for (int i = 0; i < 5; i++) { printf("%c \n", *(pvowels + i)); printf("%c \n", vowels[i]); } char*temp = (char*)malloc(5 * sizeof(char)); temp[0] = 'a'; temp[1] = 'e'; *(temp + 2) = 'i'; *(temp + 3) = 'o'; temp[4] = 'u'; free(temp); //하지만 변수명은 남음 char **temp1 = (char**)malloc(2 * sizeof(char*)); temp1[0] = (c..
+)Overloading, Overriding 차이?Overloading : 같은 이름의 method를 사용하는 것Overriding : 상속 후 부모의 method를 변경하는 것 Overriding의 예시출처 : http://itpangpang.xyz/105 #include #include //malloc 정의 typedef struct { char*brand; int model; }vehicle; struct temp { int x; int y; }; //함수의 overloading 허용되지 않음 //모든 함수의 이름이 달라야함 void show_point(int x, int y) { printf("1 : %d %d \n", x, y); } void show_point_temp(struct temp ..
#include int main() { int a = 1; int* pointer_a = &a; /* *란 그 변수의 주소값을 저장하는 것이다. &란 그 변수의 주소값을 가져오는 것이다. int *pointer = &a; 란 pointer에 a의 주소값을 저장한다는 것이다. 주소값의 변수를 가져오고 싶으면 *pointer를 printf해주면 된다. */ printf("a : %d \n", a); printf("pointer_a : %d / *pointer_a : %d / &pointer_a : %d \n", pointer_a, *pointer_a, &pointer_a); *pointer_a+=1; //2 //*pointer_a++; //안됨 printf("%d \n", *pointer_a); pointe..