아주 새로운 프로그래머와 어리석은 질문에 대한 사전 사과.런타임에 할당 후 읽기 전용 인 변수?
내 배열의 길이가 내 구조의 일부 여야하는지 결정하는 데 사용하는 변수에 int
변수가 있습니다. 나는 내 머리글에 const int
으로 그것을 사용했습니다. 지금, 주어진 변수에 다른 값을 부여하기 위해 프로그램을 포크 화하고 싶지만 런타임에 할당 한 후에는 읽기 전용으로 유지하고 싶습니다.
몇 가지 아이디어가 필요했습니다. 선호하는 방법이 있습니까?
- 내 헤더에
const int *
을 선언하고 내 주요 기능에const int
에 할당,하지만 거추장스러운 것 같다. - 내 주요 기능으로는 평야로
int
으로 지정하십시오. - 함수가 호출 될 때 변수를 인수로 전달하십시오.
- 내가 아직 생각하지 않은 것.
이 변수를 사용하여 런타임에 가변 크기의 배열을 만드는 경우 Standard C++가 아닙니다. 표준 C++에서는 ** 가변 길이 배열 (VLA) **을 사용할 수 없습니다. 따라서 배열의 길이는 컴파일 시간 상수 여야합니다. –
@Als : 길이가 일정한 배열을 만들었지 만 런타임까지 길이가 얼마인지 모르겠습니다. –
@BlueMagister : 그렇다면 그들은 길이가 일정하지 않습니다. 이 문맥에서 "상수"는 "컴파일 타임 상수"를 의미합니다. 'new'로 배열을 할당하지 않는다면) 배열을 C++에서 비 컴파일 타임 크기로 지정할 수 없습니다.'std :: vector'를 사용하거나'new'로 그것을 할당해야합니다. –