본문 바로가기

C3

20201130#(11) 메모리구조 (3) (heap) 동적할당(1) 오늘은! 메모리 구조 heap영역에 대해서 같이 공부해보자. 메모리 구조의 heap영역은 우리가 직접 관리할 수 있는 영역이다. 우리에 의해서 메모리 공간이 동적으로 할당되고 해제된다. 데이터 영역과 스택 영역은 메모리 공간이 compile time에 정해지는데, heap영역은 runtime에 사용자가 직접 정한다. 이렇게 runtime에 메모리 공간 할당받는 것을 메모리의 동적 할당(dynamic allocation)이라고 한다.(반대는 정적 할당 static allocation) 동적 할당을 위해서 알아야 할 함수는 malloc과 free이다. *malloc (MemoryAllocation) malloc은 프로그램이 실행 중일 때 힙 영역에 메모리 할당을 할 수 있게 해 준다. malloc함수를 사용.. 2020. 11. 30.
20201026#(4) 메모리구조 (1) Data science를 배울 때 기본적으로 배워야 한다는 data segment에 대해서 알아보자. 프로그램이 실행될때 프로그램은 RAM에 올라간다. 이때 RAM에 올라오는 프로그램의 내용을 나누자면 code segment, data segment, heap, stack으로 나눌 수 있다. 먼저 code segment에는 프로그램의 코드가 저장이 된다. 이때 코드는 컴퓨터가 이해할 수 있는 기게 어로 바뀌어서 저장이 된다. 예를 들자면 c언어에서 hi를 출력하려면 printf("hi"); 이지만 기계어는 0101 0001 0000 0000 0000 0111 0101 0001 0000 0000 0000 1000 0000 0000 0100 1000 0110 1001 로 나타내야한다고 한다. 기술이 발전함으.. 2020. 10. 26.
20201020#(3) 어떤 언어를 선택해야할까 고민될때는? 나의 첫 프로그래밍 언어는 c 언어이다. 전공도 정하지 못한 채 대학교에 와서 이것저것 듣다가 1학년 2학기 때 cprograming 강의를 신청해 듣게 된 게 나의 첫 프로그래밍 시작이라고 할 수 있다. 처음에는 왜 c언어를 먼저 배우게 할까? 라고 생각했었다. 지금 와서 생각해보니 지금 우리가 쓰고 있는 os들 대부분이 c언어를 기반으로 작성되어있으며 c언어를 배우게 되면 c++, c# 등을 배우기 편하다. 또한 c언어는 컴퓨터 구조를 이해하기 쉬운 언어라고도 한다. 이외에도 다양한 장점이 있는 언어라고 생각된다. 요즘 c언어 공부를 하다가 문득 다른언어를 공부해보고 싶다는 생각이 든다. 그런데 지금 c언어를 배우고 있는 중이기 때문에 이때까지 한 게 아까워서라도 목표치까지는 마치고 다른 언어를 선택.. 2020. 10. 20.