공부259 [XML] XML(Extensible Markup Language) 기초 XML - Extensible Markup Langueage 간단히 정의 하자면 XML은 데이터를 저장하고 전송하기 위한 마크업 언어* 입니다. ↓↓마크업 언어?↓↓ 더보기 마크업 언어 ( markup language ) 태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어의 한가지 입니다. 태그는 원래 텍스트와는 별도로 원고의 교정부호와 주석을 표현하기 위한 것이었으나 용도가 점차 확장되어 문서의 구조를 표현하는 역할을 하게 되었습니다. 이러한 태그 방법의 체계를 마크업 언어라 합니다. 데이터를 기술하는 정도로 사용되기 때문에 프로그래밍 언어와는 구별됩니다. 마크업 언어의 자세한 사항은 위키백과를 참고합니다. 마크업 언어 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. ko.w.. 2023. 5. 12. [C, C++] 메모리 풀(Memory Pool) 메모리 풀(Momory Pool)이란? 고정된 크기의 블록을 할당하여 malloc, new 처럼 동적할당을 가능하게 해주는 기능입니다. 기본적으로 C의 동적할당 malloc 이나 C++의 동적할당 new 는 규칙적인크기의 할당이 아니기 떄문에 메모리 단편화를 유발 시키고 파편화된 메모리들은 프로그램의 성능 저하를 유발 합니다. 이를 방지하기 위하여 일정한 크기의 메모리(블록)들을 미리 할당 해 놓고 사용하는 것이 메모리 풀 입니다. 응용 프로그램은 실행 시간에 핸들에 의해서 할당>접근>해제 합니다. 추가적으로 malloc & new 의 동적할당은 할당 및 해제를 실시할 때 마다 운영체제에 요청하는 과정일 발생하는데 이러한 과정또한 줄일 수 있습니다. 메모리 풀 에는 고정 방식과 가변 방식의 두가지 방법이.. 2023. 5. 3. [C, C++] 허상포인터(Dangling Pointer) + 와일드포인터(Wild Pointer) + 스마트포인터 와일드포인터(Wild Pointer) 란 처음 사용시 초기화를 하지 않았을때 발생합니다. 초기화가 강요되지 않는 모든 포인터는 와일드 포인터로 시작됩니다. 대부분 초기화의 생략 보다는 깜빡하고 초기화하지 않아 발생하는 경우가 많고 컴파일러는 이에 대하여 경고 할 수 있다고 합니다. 허상포인터(Dangling Pointer) 란 동적 할당 된 포인터를 delete 혹은 free 를 사용하여 해제 할 경우 할당되었던 메모리 영역은 해제가 되지만 가리키고 있던 포인터 자체까지 삭제되지는 않습니다. 때문에 목표를 잃은 채로 존재하고 있는 포인터가 즉, 허상 포인터가 됩니다. #include using namespace std; int main() { int* ptr = new int(); *ptr = 5; cout 2023. 5. 3. [C, C++] 동적 할당, 해제 동적할당 그리고 해제에 대하여 정리 합니다. 우선 기본 개념으로 C 언어에서의 동적할당과 C++ 언어에서의 동적할당은 같지않습니다. 양쪽모두 크게보자면 힙공간에 동적으로 메모리를 할당받아 저장 하는 것 입니다.동적할당을 하고난 후에는 해제를 해줘야합니다. 만일 해제 하지 않을 경우 메모리를 계속 가지고 있기 때문에 메모리 누수가 생길 수 있습니다.메모리 누수가 커질 수록 프로그램에 위험 합니다. C언어 에서의 동적할당 및 해제 C언어 에서는 malloc 으로 할당 하며, free 로 해제 합니다. struct Position { int a; int b; }; int main() { Position* ptr = (Position*)malloc(sizeof(Position)); // 동적 할당 // ... .. 2023. 5. 3. [C++] 스네이크 게임 보호되어 있는 글 입니다. 2023. 4. 28. [자료구조] 트리, 해시 테이블, 이진 탐색 참조블로그 보호되어 있는 글 입니다. 2023. 4. 25. 이전 1 ··· 27 28 29 30 31 32 33 ··· 44 다음