C언어의 자료형
참고로 모든 배열은 구조체로 변환이 가능하다.
단, 구조체는 배열로 변환이 불가능하다.
Java의 자료형
Java는 크게 기본 타입과 레퍼런스 타입으로 나뉘는 것을 볼 수 있다.
Dangling Pointer Problem
Dangling pointer 문제란 이미 해제된 메모리를 가리키는 포인터를 의미한다.
이를 해결하기 위한 방법으로는 포인터를 NULL로 설정하는 것이 있다.
이렇게 하면 포인터가 더 이상 유효하지 않은 메모리 주소를 가리키지 않게 될 것이다.
Array Type
- Static Array(정적 배열): 정적 배열은 컴파일 시간에 그 크기가 결정되며, 프로그램의 실행 동안 크기가 변경되지 않는다. Subscript binding(인덱스 결정)과 Storage binding(메모리 할당) 모두 컴파일 시간에 이루어지며, 이러한 배열은 프로그램의 Lifetime 동안 고정된 메모리 공간을 차지한다.
- 장점: 효율성 (동적 할당을 하지 않아도 됨)
- Fixed stack-dynamic: 인덱스 범위는 정적으로 바인딩되지만 할당은 선언 시간에 수행됩니다
- 장점: 공간 효율
- Fixed heap-dynamic: fixed stack-dynamic과 유사하게 메모리 할당은 동적이지만 할당 후 고정됩니다(즉, 요청 시 바인딩이 수행되고 스토리지가 스택이 아닌 힙에서 할당된다)
- Heap-dynamic: subsciprt 범위 및 저장소 할당의 바인딩은 동적이며 임의의 횟수를 변경할 수 있다.
- 장점: 유연성(배열은 프로그램 실행 중에 성장하거나 축소할 수 있다)
'3-1 학기 > Programming Languages' 카테고리의 다른 글
[프로그래밍언어] Ch 10 Implementing Subprograms (0) | 2024.06.01 |
---|---|
[프로그래밍언어] Ch9 Subprograms (0) | 2024.05.31 |
[프로그래밍언어] Ch5 Names, Bindings, and Scopes (0) | 2024.04.14 |
[프로그래밍언어] Ch4 Lexical and Syntax Analysis (0) | 2024.04.13 |
[프로그래밍언어] Ch3 Describing Syntax and Semantics (0) | 2024.04.13 |