일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 기타 연주
- YOLO
- Visual Studio
- C
- Selenium
- C++
- windows forms
- error
- pytorch
- 프로그래머스
- pip
- 오류
- Linux
- LIST
- paramiko
- VS Code
- 채보
- C#
- SSH
- Numpy
- ubuntu
- mysql
- label
- pandas
- Python
- 핑거스타일
- 컨테이너
- JSON
- Docker
- OpenCV
- Today
- Total
목록C (15)
기계는 거짓말하지 않는다
malloc 동적 할당 후 free 함수 호출 시 어떻게 크기를 알고 할당 해제를 하는지 궁금했던 적이 있었다. #include #include int main() { int* arr = (int*)malloc(sizeof(int) * 10); int i; for (i = 0; i < _msize(arr) / sizeof(int); i++) { arr[i] = i + 1; printf("%d ", arr[i]); } puts(""); free(arr);// sizeof(int) * 10 만큼 해제 puts("메모리 할당 해제"); } 위와 같은 코드 실행 후 free를 호출할 때 어떻게 크기를 판별하는지 찾아보았다. 결론은 동적 메모리 할당을 사용할 때 힙 영역에서 수행 되고, 실제 요청 된 크기보다 더..
노드 추가 시 끝이 아닌 오름차순 추가가 되도록 구현. DoublyLinkedListMain.c #include #include #include #include "DoublyLinkedList.h" int main() { int val, select; char c; dnode* head = NULL, * tail = NULL, * temp, * ptr; mbool autoLookupAddNode = t, autoLookupDeleteNode = t; while (1) { printf("\n1. 추가\n2. 삭제\n3. 조회\n"); printf("입력 (N = exit): "); scanf_s("%d", &select); if ((c = getchar()) == 'N') break; else if (In..
#include #include typedef enum eSelectMenu { selectAdd = 1, selectDelete, selectPrint, selectExit } eSelectMenu; typedef enum eBool { false, true } eBool; typedef struct Node { int data; struct Node* link; } Node; void PrintLinkedList(Node* head) { if (head == NULL) { printf("List Empty"); return; } for (; head != NULL; head = head->link) { printf("%d ", head->data); } } void AddLinkedListData(N..
element 한 자리가 항상 비게되지만, 재정렬 없이 큐 이용이 가능하다. First In First Out(FIFO) 구조 #include #define MAX_Q_SIZE 11// 원형 큐 이용 가능 크기 MAX_SIZE - 1 typedef enum eSelectMenu { selectAdd = 1, selectDelete, selectPrint, selectExit } eSelectMenu; typedef enum eBool { false, true } eBool; void Add(int [], int*, int*, int); int Delete(int [], int*, int*); eBool IsEmpty(int, int); eBool IsFull(int, int); int main(void)..
Last In First Out(LIFO) 구조 #include #define SIZE 100 typedef enum eSelectMenu { selectPush = 1, selectPop, selectPeek, selectSize, selectExit } eSelectMenu; typedef enum eBool{ false, true } eBool; int top = -1;// -1 or 0 int stack[SIZE]; void Push(int data) { stack[++top] = data; } int Pop() { return stack[top--]; } eBool IsEmpty() { return top == -1 ? true : false; } eBool IsFull() { return to..
단축 평가(SCE)란 논리 연산에서 앞서 계산된 값이 뒤의 조건을 확인하지 않아도 확실하게 만족할 때 뒤의 조건을 계산하지 않고 생략하는 것을 말한다. AND 연산 시 왼쪽 이미지는 두 조건 모두 true 인지 확인하게 되어 num이 3이 된 것을 볼 수 있다. 그러나 오른쪽 이미지는 앞선 조건이 false 이기 때문에 더 이상 확인하지 않는다. OR 연산 시 왼쪽 이미지는 앞 조건이 true 이기 때문에 더 이상 확인하지 않고 num 값이 변하지 않은 것을 볼 수 있다. 반대로 오른쪽 이미지는 앞 조건이 false 이기 때문에 뒤의 조건을 확인하고 num 값이 변한 것을 볼 수 있다. C언어 뿐만 아니라 다른 언어도 마찬가지이다. 조심할 것은 여러 조건을 논리 연산 할 경우 위 이미지 처럼 변수 값을 ..
구분 키워드 제어문 반복 do, for, while 분기 break, continue, goto, return 선택 case, default, if, else, switch 자료형 char, short, int, long, float, double, signed, unsigned, enum, typedef, union, struct, void 기억 클래스 auto, static, extern, register 기타 const, sizeof, volatile 키워드는 언어에서 특별한 의미를 가진다. 정해진 기능을 수행하며 변수 이름이나 다른 목적으로 사용할 수 없다. 예약어는 예약된 단어이고 식별자로 사용할 수 없다. 대부분의 키워드는 예약어이며 반대의 경우도 마찬가지이지만 예외가 있다. Java 에서 g..