안선생의 개발 블로그

C++ 가변배열 본문

C++

C++ 가변배열

안선생 2022. 7. 20. 17:18

지금까지에 배열은 저렇게 선언해서 사용하였다.

 

만약에 변수를 이용해서 사용하면 어떻게 될까

분명히 같은 뜻인데 에러가 난다. 그 이유는 변수이기 때문에 a에값이 바뀔 수 있기 때문에 즉 런타임중에 알 수 있기 때문이다. 그때 사용할 수 있는게 가변배열이다

 

 가변배열은 실행도중에 배열에 개수를  내가 원하는데로 선언할 수 있다.

 

 

객체(Instance)

int가 자료형일경우

int a; a가 객체라고 할 수 있다. 

 

가변배열 만들기

b.h 헤더파일

b.cpp 소스파일

main 소스파일

(*pArr).pint == pArr->pint

 

 

정렬 함수 추가해보기

랜덤함수를 사용하여 숫자가 랜덤으로 나오게 한다음 만든 소트 함수로 정렬

main

b.cpp

랜덤으로 나온 수

while문으로 반복을 계속하는 이유는 33을 오른쪽으로 보냈지만 아래 그림처럼 인덱스4에 있는 6은 인덱스 3에 있을 것이다. 

sort함수 한번 실행

그렇기 떄문에 while문으로 전부다 정렬될 떄까지 계속 반복해줘야한다.

 

 

함수 포인터 사용하기

다른 사람한테 배포할 때 이런 함수가 있었으면 좋겠다 싶을 때 내가 다시 또 만들거나 수정하는게 아닌  추가하고 싶은사람이 추가 할 수 있게 설계 가능하다. 

함수포인터 변수 선언 ,초기화
void (*pFunc)(void) = nullptr ;
(반환) (주소) (인자)
 
main.cpp

b.cpp에 있던 sort함수 코드를 메인에다가 넣은 뒤 데이터 주소와 카운터를 받는다.

 

b.h

소트함수를 수정
 
b.cpp

메인에 있는 버블소트 함수가 달라는 데이터와 카운터를 전달해준다.
즉 이렇게 버블소트를 사용 할 수 있고 다른 소트 함수가 있다면 저런방법으로 사용할 수 있다.
 
메인함수에서 소트함수를 호출하면 정상적으로 실행됨
 
 

출처 : https://www.youtube.com/c/AssortRockGameAcademy

'C++' 카테고리의 다른 글

C++ 클래스  (0) 2022.08.23
C++ 리스트  (0) 2022.08.17
C++ 동적할당  (0) 2022.07.14
C++ 문자열  (0) 2022.06.09
C++ 문자  (0) 2022.06.07