2024-08-06

시연·2024년 8월 6일
  • rust 언어 전망⬆️

C

  • c언어의 철학 개발자를 믿는다
  • 동적할당: 내가 원하는 만큼 원하는 크기고 할당할 수 있다.
  • 정적할당: 크기가 정해져 있다.
  • malloc: ptr = (int )malloc(sizeof(int) 5); // int 5개 크기의 메모리 할당
문제

컴파일 타임이란 무엇인가?

  • c언어 소스코드를 컴퓨터가 알아들을 수 있는 기계 코드로 변환된다.
  • 컴파일타임에 소스 코드를 분석, 오류, 타입이 등을 검사한다.
  • 변수의 메모리를 할당, 상수 처리 등이 이루어진다.
  • 컴파일 타임에 발생한 오류는 수정되어야 한다. 수정하지 않으면 프로그램을 실행하는 것이 불가능하다.

런타임이란 무엇인가?

  • 컴파일 된 프로그램이 실제로 실행되는 시간을 의미

  • 변수에 값이 할당되고, 연산이 수행되며, 함수 호출이 이루어진다.

  • 런타임에 동적할당, 입출력 처리 등이 포함된다.

  • 런타임에 발생하는 에러를 런타임 에러라고 한다.

  • int arr[20] 장점 : 메모리가 자동할당, 메모리가 자동반납, 사용하기 편하다.

  • int arr[20] 단점 : 메모리의 크기가 런타임이 아닌, 컴파일 미리 결정되어야 한다. 유연함이 없다.

  • int arr = malloc(sizeof(int) 5) 장점

    • 메모리의 크기가 컴파일 타임이 아닌 런타임에 결정된다.
    • 사용자의 의도에 맞게 메모리 크기를 정할 수 있다.
    • 메모리의 수명을 개발자가 정할 수 있다.
  • int arr = malloc(sizeof(int) 5) 단점

    • 메모리를 수동으로 할당해줘야 한다.
    • 메모리를 수동으로 반환해야 한다. --> free(arr)
    • 메모리를 제때 반납하지 않으면 메모리 누수가 발생한다.

size가 int 변수이고 값이 5 일때, int arr[size]; 가 안되는 이유는?

  • size 변수의 값이 할당되는 시점은 컴파일 타임이 아닌 런타임에 결정되기 때문에
  • 동적할당이란 무엇인가? : 메모리를 힙에서 할당 받는 방식. malloc을 통해서
  • 정적할당이란 무엇인가? : 메모리를 스택에서 할당 받는 방식. 컴파일 타임에 미리 결정된 크기만 받을 수 있다.
  • 정적할당의 장점은? : 편하다.
  • 정적할당의 단점은? : 수명조절 불가능, 유연함이 없다.
  • 동적할당의 장점은? : 수명조절 가능, 유연함이 있다.
  • 동적할당의 단점은? : 제 때 메모리를 해제 하지 않으면 메모리 누수가 발생한다.

데이터베이스

  • 개발직군으로 가면 프론트엔드, 백엔드, || DB
  • ctrl enter : 그 줄만 실행
  • 조회: SHOW DATABASES; 삭제: DROP DATABASE a1;, 생성:CREATE DATABASE a1;

0개의 댓글