C++에서 정적 초기 화 배열 과 동적 초기 화 배열 에 대한 자세 한 설명

1925 단어 C++정적배열동태
정적 초기 화 된 배열 의 길 이 는 프로그램 에서 정 해진 상수 여야 합 니 다.사용자 가 입력 한 변수 일 수 없습니다.
예:

int a[10];//  

Student stud[10];//  :Student      

int n;cin>>n;int a[n];//  

int n;cin>>n;Student stud[n];//  :Student      
동적 초기 화 배열 은 사용자 가 입력 한 변 수 를 배열 의 길이 로 사용 할 수 있 습 니 다.
예:

int n;

cin>>n;

int *a=new int[n];//                  ,               

int n; 

cin>>n; 

cin>>n; 

Student *stud=new Student[n]; //                  ,                
메모:정적 초기 화 대상 이 정 의 될 때 공간 을 분배 하고 매개 변수 가 없 는 구조 함수 나 매개 변수 가 있 는 구조 함 수 를 호출 합 니 다.
문제 가 생 겼 습 니 다.만약 에 제 가 정적 으로 배열 을 초기 화 하려 고 한다 면 제 입력 길 이 는 cin>>n 에 달 려 있 습 니 다.그럼 어 떡 해?
만약 에 우리 가 동적 으로 배열 을 초기 화하 지 않 았 다 면 정적 으로 배열 을 초기 화 할 수 있 습 니 다.배열 의 길 이 는 프로그램 이 실 행 될 때 확인 해 야 합 니 다.프로그램 에서 비교적 큰 배열 을 초기 화 할 수 있 습 니 다.프로그램 을 실행 할 때 길이 가 n 인 일부 배열 만 사용 할 수 있 습 니 다.그럼 에 도 불구 하고 메모리 자원 을 낭비 할 수 있 지만 해결 방안 입 니 다!
예:

int a[200];

int n;

cin>>n; //         n    

for(int k=0; k<n; k++)

cin>>a[k];

Student stud[200];

int n;

cin>>n;//         n    

for(int k=0;k<n;k++)

cin>>stud[k];
메모:동적 초기 화 는 포인터 가 정 의 될 때 공간 을 분배 하지 않 고 new 문 구 를 사용 할 때 구조 함수 할당 공간 을 호출 하고 초기 화 합 니 다.
C/C+정적 으로 배열 을 초기 화 하 는 문제 의 공통점 과 차이 점 을 강조해 야 합 니 다.(이것 은 분석 한 것 이 아니 라 vs 2015 가 실 행 될 때 발 견 된 것 입 니 다)
C 언어 에서:int n=1;int a[n];//잘못
C 언어 에서:int const n=1;int a[n];//잘못
C++언어 에서:int n=1;int a[n];//잘못
C++언어 에서:int const n=1;int a[n];//정확 하 다.
이상 의 C++에서 정적 초기 화 배열 과 동적 초기 화 배열 에 대한 상세 한 설명 은 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 가 되 고 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기