TIL_2020년 9월 13일 (일)

1 분 소요

목차

1.오늘 한 일

  1. 컴퓨터 과학 공부
    • 메모리 (Memory)
      • cs50 라이브러리의 string s = char *s 이다. 메모리의 주소를 저장하는 값
      • 값을 복사하기 위해서는 우선 메모리 할당이 먼저이다. malloc 함수를 이용해 먼저 할당 후 값을 넣는다.
        ex)

        char *s = get_string("s: "); 
        char *t = malloc(strlen(s) + 1);    
        

      이런식으로 s 보다 하나 더 많게 해서 메모리 할당을 해준다. +1 을 하는 이유는 종단문자를 추가하기 위해.

      • malloc 함수를 이용하여 메모리를 할당한 후에는 free라는 함수를 이용하여 메모리를 해제해줘야 함. 그렇지 않은 경우 메모리에 저장한 값은 쓰레기 값으로 남게 되어 메모리 용량의 낭비가 발생하게 되기 때문이다. 이러한 현상을 ‘메모리 누수’라고 한다.
      • valgrind 함수는 메모리와 관련된 부분에 문제가 있는 지 확인하는 함수
      • swap : 정수 a 와 b의 값을 교환하는 함수
      • 메모리 안에는 데이터의 종류에 따라 저장되는 영역이 다르다.
        • 머신코드 영역 : 프로그램이 실행될 때, 프로그램이 컴파일된 바이너리가 저장
        • 글로벌 영역 : 프로그램 안에서 저장된 전역 변수가 저장
        • 힙 영역 : malloc으로 할당된 메모리의 데이터가 저장
        • 스택 영역 : 프로그램 내의 함수와 관련된 것들을 저장
      • scanf : 사용자로부터 형식지정자를 받아 해당되는 값을 저장하는 함수
      • fopen : 파일을 FILE이라는 자료형으로 불러오는 함수. 두번째 인자의 r은 읽기, w는 쓰기, a는 덧붙이기로 사용됨
      • fprint : 파일을 출력하기 위한 함수
      • fclose : 작업이 끝난 후 닫는 함수
      • JPEG 형식 : 각 바이트가 각각 0xFF, 0xD8, 0xFF 로 시작하는 지 확인. JPEG 형식의 파일을 정의할 때 만든 약속으로, JPEG 파일의 시작점에 꼭 포함되어 있어야한다.

2.오늘 배운 것과 깨달은 것

  • 계속 듣다보면 꼭 다 들어야하나? 라는 생각이 들긴 한다. 당장 급한건 이런게 아니라 기술일 수 있으니. 그래도 컴퓨터 전반에 대한 지식을 넓힌다고 생각하고 끝까지 듣자. 이제 자료구조까지만 들으면 cs50은 다 듣는걸로.
  • 실무 단위로 배울 수 있는 것도 같이 공부하자. 이론공부 + 실무연습 동시에 진행하자

3.지금까지 작업물 (사진)

  • 없음.

태그:

카테고리:

업데이트:

댓글남기기