동적 메모리 할당 이론

메모리 구조 프로그램 실행 시 운영체제에 의해 마련되는 메모리의 구조는 다음과 같다. 코드 영역(code Area) 실행할 프로그램의 코드가 저장되는 메모리 공간. CPU는 코드 영역에 저장된 명령문들을 하나씩 가져가서 실행한다. 데이터 영역(Data Area) 전역 변수와 static 변수가 할당된다. 프로그램의 시작과 동시에 메모리에 할당되어 프로그램 종료 시까지 남아있다. main 함수가 호출되기 이전에 데이터 영역이 먼저 초기화되고, (return문이 실행되어) 프로그램이 종료된 이후에 운영체제에 의해 할당된 메모리 공간 전체를 반환하는데, 이때가 전역 변수가 소멸하는 시점이다. ...

2023년 4월 11일 · 7 분 · 배준수

C에서 동적 메모리 할당에 관한 질문 10개

C에서 동적 메모리 할당에 관한 10개의 질문 커리어의 시작에서 많은 개발자들은 동적 메모리 할당을 사용하는 것을 두려워 한다. 이 기사에서, 나는 동적 메모리 할당에 관한 10개의 면접 질문을 설명할 것이다. 만약 만약 당신이 C의 동적 메모리 할당에 관한 면접 질문이나 C에서 메모리 할당과 관련된 함정 질문들을 찾고 있다면, 잘 찾아왔다. C 관련 면접에서 면접관에게 들을 수 있는 10개의 C 동적 메모리 할당에 관한 문제와 답을 만들었다. 그래서 나는 C의 동적 메모리 할당에 관한 면접 질문들이 당신에게 도움이 되길 바란다. 행운을 빈다. ...

2023년 4월 7일 · 7 분 · 배준수

C에서 1,2 차원 배열에 동적으로 메모리를 할당하는 법

C에서 1,2차원 배열에 동적으로 메모리를 할당하는 법 우리는 C에서 정적, 동적 배열을 모두 만들 수 있다. 이러한 배열은 1차원 혹은 다차원이다. 정적으로 할당된 배열 문제는 우리가 배열의 크기를 구체화해야 한다는 것이다. 그래서 문제는 앞으로 필요한 배열의 크기를 모를때 발생한다. 우리는 이 문제를 동적 메모리 할당으로 해결할 수 있다. 동적 메모리 할당의 이점은 실행동안 힙에 할당된다는 것이다. C 언어는 실행 중 메모리를 요청하는 함수들을 제공한다. 아래 프로그램에서, 1차원과 2차원 메모리에 동적 메모리를 할당하기 위해 malloc 함수를 사용할 것이다. ...

2023년 4월 5일 · 7 분 · 배준수

malloc과 calloc의 차이

malloc과 calloc의 차이 malloc 함수와 calloc 함수의 기본적인 차이는 calloc()은 두개의 변수를 취하고 모두 0이라는 bits로 공간이 만들어지는 반면, malloc은 한개의 변수만 취하고 공간의 값이 결정되지 않았다는 것이다(indeterminate). malloc과 calloc은 메모리를 동적으로 할당하기 위해 사용하는 메모리 관리 함수이다. C언어에서, calloc()이 0으로 초기화된 buffer를 제공하고 malloc()은 메모리를 초기화되지 않은 채로 둔다. malloc과 callo의 차이를 보기 전에 기두 함수에 대한 기본적인 정보들을 보자. malloc function in C malloc은 실행중에 메모리를 할당하는 메모리 관리 함수이다. 값이 정해지지 않고 크기에 의해 구체화된 크기를 가진 객체를 위한 공간을 할당한다. ...

2023년 4월 5일 · 3 분 · 배준수

C에서 동적 메모리 할당

출처 : https://aticleworld.com/dynamic-memory-allocation-in-c/ C에서 동적 메모리 할당 이 기사에서, 저장기간이 아닌 동적 메모리 할당과 실행기간동안 메모리를 할당하는데 사용되는 함수에 관해 얘기할 것이다. 동적 메모리 할당이 가진 각각의 장단점도 살펴볼 것이다. C 표준에 따르면, 4개의 저장기간(storage duration)이 있다. : static, thread(C11), automatic, allocated. 저장기간은 객체의 일생(lifetime)을 결정한다. 일생은 객체가 살아있는 시간(저장이 보존된 시간)이며 이전에 저장된 값이 유지되는 시간이다. 객체의 일생 범위 밖에 접근하려는 행동은 정의되지 않았을 것이다. C언어에서, 우리가 프로그램을 실행할 때 얼마나 메모리가 필요한지 모른다면 작동 시간에 변수가 된다. 예를 들어, 서버통신에서 우리는 반응 데이터(response data)의 정확한 크기를 모르기 때문에 두 가지 해결책을 준비한다. 하나는 충분한 크기의 buffer를 만드는것이고 또 하나는 실행할 때 메모리를 할당하는 것이다. ...

2023년 4월 4일 · 4 분 · 배준수

파이썬 알고리즘 3주차 : 동전, LCS, 평범한 배낭, 행렬 곱셈 순서

개발 진행 및 완료 상황 3주차 python algorithm 난이도 중 이하 문제 풀이 완료 CSAPP 3.3 까지 공부 업무, 개발 중 발생한 이슈/고민 또는 이를 해결한 내용 백준 9084 동전(https://www.acmicpc.net/problem/9084) 풀이 과정 : j원을 만들 수 있는 경우의 수를 dp[j]라 한다면 동전의 한 종류인 i원을 더한 j+i원을 만드는 경우의 수도 dp[j+i]를 더함으로서 구할 수 있다. 정답코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import sys ans = [] t = int(sys.stdin.readline()) for _ in range(t): n = int(sys.stdin.readline()) coin = list(map(int,sys.stdin.readline().split())) m = int(sys.stdin.readline()) dp = [0] * 10001 dp[0] = 1 for i in coin: for j in range(1,m+1): if j-i >= 0: dp[j] += dp[j-i] ans.append(dp[m]) print(*ans, sep='\n') 출처 : ...

2023년 3월 28일 · 4 분 · 배준수

습관

2023-03-27 습관 이 곳에 온지 한 달이 된 날이다. 어느덧 파이썬 알고리즘은 마지막 주차에 들어섰다. 잘해왔다 라고 말하기는 많이 부족하다. 그래도 조금씩 더 나아지고 있는 모습을 스스로에게 찾을 수 있는 건 참 다행이라는 생각이 들었다. 저번 달의 나와 비교하면 참 많은것이 변했다. 이제 남들의 말을 조금은 더 잘 알아들을 수 있게 되었다. 생소한 단어 투성이였던 주변 사람들의 대화는 이제 무슨 이야기인지는 알겠다. 물론 그 개념을 완벽하게 이해하고 있는 것은 또 다른 얘기긴 하지만 말이다. 최선의, 최단의 ...

2023년 3월 27일 · 4 분 · 배준수

파이썬 알고리즘 3주차 : 줄 세우기

1.개발 진행 및 완료상황 2주차 python algorithm 문제풀이 완료 업무, 개발 중 발생한 이슈/고민 또는 이를 해결한 내용 백준 2252 2252번: 줄 세우기 2252번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 게시판 줄 세우기 스페셜 저지 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 37709 21883 14481 56.278% 문제 N명의 학생들을 키 순서대로 줄을 세우려고 한다. 각 학생의 키를 직접 재서 정렬하면 간단하겠지만, 마땅한 방법이 없어서 두 학생의 키를 비교하는 방법을 사용하기로 하였다. 그나마도 모든 학생들을 다 비교해 본 것이 아니고, 일부 학생들의 키만을 비교해 보았다. 일부 학생들의 키를 비교한 결과가 주어졌을 때, … ...

2023년 3월 21일 · 2 분 · 배준수

파이썬 알고리즘 3주차 BFS : 특정 거리의 도시 찾기, 미로 탐색

1.개발 진행 및 완료상황 2주차 python algorithm bfs 문제 풀이 중 CSAPP 2주차 목표 읽기 완료 업무, 개발 중 발생한 이슈/고민 또는 이를 해결한 내용 백준 18352 18352번: 특정 거리의 도시 찾기 문제 어떤 나라에는 1번부터 N 번까지의 도시와 M 개의 단방향 도로가 존재한다. 모든 도로의 거리는 1이다. 이 때 특정한 도시 X 로부터 출발하여 도달할 수 있는 모든 도시 중에서, 최단 거리가 정확히 K 인 모든 도시들의 번호를 출력하는 프로그램을 작성하시오. 또한 출발 도시 X 에서 출발 도시 X 로 가는 최단 거리는 항상 0이라고 가정한다. 예를 들어 N =4, K =2, X =1일 때 다음과 같이 그래프가 구성되어 있다고 가정하자. 이 때 1번 도시에서 출발하여 도달할 수 있는 도시 중에서, 최단 거리가 2인 도시는 4… ...

2023년 3월 19일 · 5 분 · 배준수

파이썬 알고리즘 3주차 : 촌수계산, 트리의 부모 찾기, 구슬 찾기

1.개발 진행 및 완료상황 2주차 python algorithm dfs 문제 1회독 완료 CSAPP 2주차 목표 읽기 업무, 개발 중 발생한 이슈/고민 또는 이를 해결한 내용 백준 2644(파이썬) 2644번: 촌수계산 문제 우리 나라는 가족 혹은 친척들 사이의 관계를 촌수라는 단위로 표현하는 독특한 문화를 가지고 있다. 이러한 촌수는 다음과 같은 방식으로 계산된다. 기본적으로 부모와 자식 사이를 1촌으로 정의하고 이로부터 사람들 간의 촌수를 계산한다. 예를 들면 나와 아버지, 아버지와 할아버지는 각각 1촌으로 나와 할아버지는 2촌이 되고, 아버지 형제들과 할아버지는 1촌, 나와 아버지 형제들과는 3촌이 된다. 여러 사람들에 대한 부모 자식들 간의 관계가 주어졌을 때, 주어진 두 사람의 촌수를 계산하는 프로그램을 작성하시오. 입력 사람들은 1, 2… ...

2023년 3월 18일 · 4 분 · 배준수