본문 바로가기
CS기초

[CS 기초지식 메모리] -24일차

by Jyujae 2022. 6. 18.

1. 16진수

 

 

10진수 -> 16진수

 

0,1,2,3,4,5,6,7,8,9,a,b,c,e,d,f 

4비트씩 16진수로 변환하고, 구별해주기 위해 0x를 앞에 붙혀준다

-> 0x7ffe00b3adbc’

 

-> n의 주소 얻고 그 주소에 해당하는 값을 호출 -> 50

 

 

2. 주소

 

S='EMMA' 로정의했을때

저장되어있는 메모리의 한칸 한칸을 비교하기 떄문에 제대로 나옴

but, 

=> 문자열을 '저장'하고 비교하면 각각의 주소가 다르기 때문에 비교를 값이 같아도 다르다고 나온다

 

3. 메모리 저장

=> malloc으로 메모리 자체를 복사하여 t에 할당

 

malloc <-> free

 

4. 메모리 교환, 스택, 힙

machine code: 프로그램이 실행될 때 컴파일된 바이너리

 

globals: 포로그램 내부 지정된 전역 변수

 

heap: malloc으로 저장한 메모리의 데이터

 

stack: 프로그램 내 함수 

 

heap과 stack 각각의 메모리가 아래 위로 늘어나서, 메모리 용량을 초과하는 오버플로우 현상 생길 수 있음

 

5. 파일 쓰고 읽기

 

scanf 로 실제 스택 영역 내엥 저장된 주소로 찾아가서 값을 저장 +호출