CPP_어소_43_가변배열 (1)

CJB_ny·2022년 6월 24일
0

CPP_AROTHO

목록 보기
41/83
post-thumbnail

이거 안될거같은 이유?

나는 일단 될거 같다 라고 생각함.

이유

그냥 a의 주소값을 그 순간 복사를 해와서 arr의 크기를 정의해주고 초기화 하니까?

상수값 == const값이 있어야 한단다.

이렇게는 됨.

생각 못한거

변수 = "값이 변하는 수"

그러면

이렇게하면 런타임 중간에 입력을 받아서 배열의 크기를 선언하나??

배열 지금 지역변수이고 main함수 내에 선언되는데,

"동적 할당" 하나?? => 동적할당은 ROM에??가나??

컴파일시 main함수 메모리

는 "어느정도" 될 것이다. 라고

Stack에서 계산이 이미 다된거임.

그러니까 해제할 수 있었고 사용자가 신경쓸 필요가 없었던 것이다.

지금

int a = 0;
int iInput = scanf_s("%d", &a);
int arr[iInput] = {};

이렇게 있을 때 main함수가 얼마만큼의 메모리를 사용할지 컴파일 해야하는데?

"파악"이 되나??

그래서

가변배열

프로그램 실행중에 늘어났다 줄어들었다 하는 배열을 만들고 싶은데

그게 지역변수로 가능하다 불가능하다? => 불가능하다.

왜? =>

왜 안되노?

이거는 왜 안되노?

구조체 뭐라했나 ST라는 자료형을 가지는 변수의 이름 a == ST a;

구조체 정의

사용자가 직접 만든 "자료형"

그래서

갯수가 정해지지 않았는데 main함수의 지역으로 할당할 끼고??

가변배열은?

그래서 결국 어느 메모리 영역을 쓸 수 밖에 없나??

=> "Heap"메모리 영역을 사용할 수 밖에 없다.

배열 개수를 선언할 때는 변수를 사용할 수 없다.

객체 ( Instance )

int

int a; => 'a'가 "int"라는 자료형의 객체(Istance)이다.

"내가 의도한 자료형의 실질적인 데이터"

A4 종이에 도장으로 뭘 막 찍어내면 찍혀진 애들이 다 객체이다.

따라서,

가변배열이라는 어떤 형태를 선언하고 => 객체를 만들 것이다.

개변배열이라는 동작을 할 수 있는 "자료형"을 만들것이다.

폴더 만들고 -> .h, .cpp 만들고 -> include "Array.h"

그다음에 이 안에는 이녀석이 가변배열로써 필요한 멤버들로 구성을 해야한다.

profile
https://cjbworld.tistory.com/ <- 이사중

0개의 댓글