C++ 포인터 완전 가이드

목차- 포인터 개요 주소 연산자 (&) 역참조 연산자 (*) 포인터 선언 포인터와 배열 포인터 초기화 포인터 연산 포인터와 const 포인터와 문자열 리터럴 다중 포인터 void 포인터 유효하지 않은 포인터와 널 포인터 함수 포인터 포인터 개요 이전 장에서 변수는 메모리의 위치로 설명되었으며, 이는 식별자(이름)로 접근할 수 있습니다. 이를 통해 프로그램은 데이터 ...

7월 2일 20:07에 게시됨

Java에서 문자열 객체의 메모리 위치 확인 방법

자바에서는 문자열이 불변 객체로 처리되며, 메모리 내부에 저장되는 방식에 대해 많은 개발자가 관심을 갖습니다. 실제로 자바는 객체의 직접적인 메모리 주소를 제공하지 않지만, 간접적인 방법을 통해 문자열 객체의 고유 식별 정보를 확인할 수 있습니다. identityHashCode를 통한 객체 식별 System.identityHashCode() 메서드는 객체의 해시 코드를 반환하며, 이 ...

7월 1일 20:54에 게시됨

C++에서의 배열과 포인터

C++ 책이나 튜토리얼 대부분은 배열과 포인터를 함께 다룹니다. 그 이유는 무엇이며, 둘 사이에는 어떤 연관성이 있을까요? C++에서 배열과 포인터는 밀접하게 연결되어 있으며, 주요 관계는 다음과 같습니다. 1. 배열 이름은 포인터다 대부분의 상황에서 배열 이름은 배열의 첫 번째 요소를 가리키는 포인터로 암시적으로 변환됩니다. 예를 들어, int arr[5];라는 배열 ...

6월 29일 18:28에 게시됨

C++ 메모리 관리의 진화: calloc에서 스마트 포인터까지

1장: C 스타일 메모리 관리에서 현대 C++로의 전환 C++은 시스템 프로그래밍의 안정성과 효율성, 추상화 능력을 지속적으로 개선하는 과정에서 발전해 왔습니다. 초기 C++은 C 언어의 malloc/free를 기반으로 동적 메모리 할당을 수행했으나, 이는 메모리 누수, 중복 해제, 떠 있는 포인터 등 다양한 문제를 유발했습니다. 전통적인 C 스타일 메모리 관리의 문제점 - 개 ...

6월 24일 01:24에 게시됨

자바 Integer 캐시 메커니즘: 작은 마을의 이야기

소개 자바 세계에 오신 것을 환영합니다! 이곳에서 정수들은 단순한 숫자가 아니라, 풍부한 이야기와 삶을 가진 존재들입니다. 왜 자바에서 어떤 숫자들은 마치 필요할 때마다 언제나 나타나는 것처럼 생기盎然해 보이는지 생각해 본 적이 있나요? 이것이 바로 Integer 캐시 메커니즘의 마법입니다! 오늘은 이 작은 마을을 탐험하며 자바 정수의 비밀을 밝히고, 가볍고 유 ...

6월 13일 19:40에 게시됨

Redis 핵심 기능 및 아키텍처 분석

데이터 타입과 활용 사례 String: 캐싱, 카운터(인크리먼트/디크리먼트), 세션 저장. 최대 512MB 데이터 지원. Hash: 객체 정보, 상품 상세 정보 저장. 필드-값 구조로 구성되며 HSET, HGET, HGETALL 명령어로 접근 가능. List: 메시지 큐(예: LPUSH/RPOP), 최신 공지 리스트(LPUSH/LRANGE). 내부적으로 압축리스트 또는 양방향 링크드리스트 사용. Set: 중복 제거, 친구 ...

6월 11일 17:34에 게시됨

CS50 pset2 서브스티튜션 암호 구현 및 개선 전략

1. 작업 효율성을 높이는 개발 전략: VS Code 플러그인 활용 장문의 과제 지침을 처리할 때, 반복적인 페이지 전환과 정보 추출은 생산성을 저하시킵니다. 이 문제를 해결하기 위해 Todo+ 또는 Markdown All in One 같은 확장 프로그램을 활용하는 것이 효과적입니다. 작업 절차는 다음과 같습니다: 새로운 .todo 파일을 생성하고, 과제 요구사항을 전체 복사합니다. 필 ...

6월 6일 17:09에 게시됨

C언어 배열 및 함수 실습

배열 처리와 함수 활용에 대한 실습 과제입니다. 과제1 소스코드: #include <stdio.h> #define MAX_SIZE 4 #define ROWS 2 void arrayTest1() { int arr[MAX_SIZE] = {1, 9, 8, 4}; int idx; printf("배열 크기: %d\n", sizeof(arr)); for(idx = 0; idx < MAX_SIZE; ++idx) { printf("%p: %d\n", &arr[idx], ar ...

6월 2일 23:27에 게시됨

파이썬 메모리 관리와 데이터 타입: 가변성, 불변성, 복사 및 인코딩

가변 및 불변 데이터 타입 ============= 1.1 개념 가변 데이터 타입: 값이 수정될 때 메모리 주소가 변경되지 않음 불변 데이터 타입: 값이 수정될 때 메모리 주소가 변경됨 1.2 일반 데이터 타입의 코드 구현 가변 타입: list, dict, set 불변 타입: str, int, float, bool, tuple (1) 정수 - 불변 num_val = 10 print(id(num_val)) # 140709452925800 num_val = 20 p ...

6월 2일 22:42에 게시됨

WeakHashMap을 활용한 자동 메모리 정리 캐시 구현

WeakHashMap를 이용한 캐시 자동 정리 기법 자바에서 메모리 관리는 특히 캐시 시스템 구현 시 핵심적인 고려 사항입니다. 캐시 항목이 더 이상 사용되지 않으면 자동으로 제거되어야 하며, 수동 삭제 없이도 이를 보장하는 방식이 필요합니다. WeakHashMap은 이러한 요구를 충족시키기 위해 제공되는 유용한 도구로, 키에 약한 참조(weak reference)를 사용하여 메모리 누 ...

6월 2일 21:24에 게시됨