일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스
- 조합론
- 백준
- c언어
- C++
- C++1967
- 소트 게임
- BFS
- 투포인터
- strtok
- 문자열
- C++1167
- 순열
- 백준 숨바꼭질5
- DFS
- 알고리즘
- 백트래킹
- DP
- C++ 17071
- 가장 긴 증가하는 부분 수열
- 16933
- C++ 1918
- 다익스트라
- 조합
- Backtracking
- C++ 1937
- 백준 17071
- 위상정렬
- LIS
- 인덱스 트리
- Today
- Total
블로그
메모리 영역 본문
개빡친다
모르는게 너무 많아
https://mintnlatte.tistory.com/247
컴파일(Compile)과정 - as에 의한 기계어 코드 생성
■ 컴파일이 끝난 어셈블리 코드는 as에 의해 기계어(바이너리)로 어셈블 된다. (1) 오브젝트 파일 구조 : 오브젝트 파일이나 실행파일은 그 자체로서 링커나 로더에게 정보를 제공해야만 링킹
mintnlatte.tistory.com
메모리 영역 (Code, Data, BSS, HEAP, Stack), Little Endian, Stack의 이해
- 메모리 영역 (윈도우 기준, 리눅스는 조금 다르다.) 함수, 제어문, 상수 등등 / 함수에 대한 기계어 코드가 들어감 ← Code compile time에 크기가 결정되고 이후로 변동되지 않는다. 전역변수 / 초기
donghwada.tistory.com
C언어 텍스트 파일과 바이너리 파일의 차이는?
바이너리 파일? 텍스트 파일? C/C++ 언어를 학습하다 보면 파일 종류 중에 텍스트 파일과 바이너리 파일 얘기가 나오는데요, 처음 접하시는 분이라면 혼란스러울 수 있습니다. 설명하는 내용이 대
badayak.com
https://gusdnd852.tistory.com/16
C언어 메모리 세그먼트
C를 공부하기 전에 C언어의 메모리 구조를 알면 C언어를 이해하는데 큰 도움이 되며, C이외에도 Java 등의 언어도 이러한 구조와 굉장히 비슷하게 설계되어있다. (아주 약간의 차이만 존재한다) 때
gusdnd852.tistory.com
<DATA영역>
- .rodata : READ ONLY
- 초기화 되어있다
- const 변수
- 각종 문자열
- ex) const ptr* = "abced" 라면 "abcde"가 .rodata영역에 있는거임! ptr은 위치한 곳에 따라서 달라짐
- 0.data : READ WRITE 가능
- 초기화 된 전역변수
- .bss : READ WRITE 가능
- 초기화 되어있지 않은 전역변수
- ex) int arr[500]; => 컴파일 시에 컴파일러가 0으로 다 채워줌
전체 메모리 영역을 고정/가변으로 나누기
- 컴파일 시 크기가 결정됨
- .txt: 기계어 코드 (read only)
- .data: 초기값이 있는 전역변수
- .bss: 초기값이 없는 전역변수
- 런타임 중에 가변적으로 변동됨 - 힙은 위->아래로, 스택은 아래->위로 순차적으로 채워자가며 메모리를 사용
- Heap: 동적할당으로 할당된 변수
- Stack: 블록({}) 내에서 할당된 변수
int a = 1;
int b = 2;
const int* ptr = &a;
ptr = &b;
==> 가능
int* 를, 즉 a의 값을 const 해준 것이므로 ptr 변수에 b의 주소값을 넣는 것이 가능함
int a = 1;
int b = 2;
int* const ptr = &a;
(*ptr) = b;
==> 가능
0.
ptr을, 즉 ptr이 가리키는 주소값을 const 해준 것이므로 ptr의 주소값에 담긴 값을 2로 만들어 주는 것이 가능함
위의 두 케이스는 네번째 줄이 서로 바뀌면 실행되지 않는다
'CS' 카테고리의 다른 글
[C, C++] C언어에서 참(true), 거짓(false) 구분 (0) | 2023.03.24 |
---|---|
[C++] char[] to string, string to char[] / char[], char* 의 차이점 (2) | 2022.12.27 |
[OS] Linux IPC - Pipe, Shared memory, Message queue (0) | 2022.12.21 |
[DB] PL/SQL 정리 (0) | 2022.12.15 |
[DB] 정규화 - 함수 종속성 및 정규형 (종속성 규칙, 제 N정규형) (0) | 2022.12.15 |