포인터의 배열이란 무엇입니까?
포인터 배열은 정수 또는 부동 소수점 번호와 같은 다른 스칼라 유형을 보유하는 것과는 달리 데이터 유형에 대한 메모리 시퀀스를 보유하는 표준 배열 데이터 유형입니다. 다양한 포인터를 사용하면 프로그램에는 거의 모든 데이터 유형, 데이터 구조, 클래스 또는 기능 배열이있을 수 있습니다. 많은 포인터 배열의 효율적인 정렬도 원하는 경우 컴퓨터 메모리에서 물리적 위치에 따라 주소를 정렬 할 수 있습니다. 포인터 배열을 사용하는 데있어 합병증 중 일부는 데이터를 쉽게 손상시킬 수 있고 메모리 오버플로 문제를 방지하기 위해 내부적으로 관리 될 필요가 있다는 것입니다.
모든 프로그래밍 언어가 원래 개념이 고안된 것처럼 다양한 포인터를 허용하는 것은 아닙니다. 메모리 관리를 자동화하는 고급 언어는 기술적으로 높은 수준의 클래스 객체가 객체 지향적 인 클래스 객체 배열이지만, 하위 수준 언어와 같은 방식으로 포인터를 사용하지 않습니다.언어는 포인터의 배열입니다. 그럼에도 불구하고 그들은 같은 방식으로 사용하거나 조작 할 수 없습니다. 낮은 수준의 언어에서 배열은 실제로 메모리 힙에서 포인터의 직접 주소 인 정수 값을 보유합니다. 대부분의 고급 언어에서는 대체 패러다임이 존재하지만이 기능은 불가능합니다.
프로그래밍 도구로서 포인터 배열을 가치있게 만드는 측면 중 하나는 포인터가 사용 가능한 모든 유형의 데이터를 참조 할 수 있다는 것입니다. 포인터는 다른 데이터 유형을 가리키는 것이라도 데이터 유형 자체입니다. 이것은 많은 포인터가 실제로 동일한 배열에 다양한 데이터 유형을 포함 할 수 있음을 의미하지만, 프로그램은 각 포인터가 참조했던 것을 추적하는 메커니즘이 필요합니다.
.포인터의 강력한 측면은 실제로 메모리에서 컴파일 된 프로그램 코드를 가리킬 수 있다는 것입니다. 이것은 배열을 허용합니다데이터뿐만 아니라 함수를 가리키는 것. 함수 배열은 코드의 동적 숫자 참조를 허용 할 수 있습니다. 이는 스위치 블록과 같은 큰 조건부 진술이 필요없이 예측할 수없는 입력을 기반으로 특정 기능을 호출 해야하는 언어 통역사 또는 기타 유형의 소프트웨어를 프로그래밍 할 때 유용 할 수 있습니다.
포인터 데이터 배열에 의해 제시된 일부 문제는 주소를 잃어 버릴 가능성이 있으며, 나중에 메모리가 해제되는 것을 방지하고, 추가와 같은 의도하지 않은 작업을 통해 주소를 손상시킬 수 있습니다. 잘못된 주소에 액세스하려고 시도하면 데이터가 손상되거나 초기화 실패와 같은 극한의 경우 프로그램이 예기치 않게 종료 될 수있는 세그먼트 화 결함으로 이어질 수 있습니다. 신중한 프로그래밍은 이러한 이벤트의 가능성을 완화하는 데 도움이 될 수 있습니다.