IT 대장간

[C++] 배열 동적할당 [ 배열크기 직접 입력 , 값 직접입력 ] 본문

Programing/C & C++

[C++] 배열 동적할당 [ 배열크기 직접 입력 , 값 직접입력 ]

태장장이 2021. 3. 11. 15:15

1.정수형 배열 (사진)

 

: 위에 for 반복문은 value 값을 배열의 길이만큼 입력받기위한 반복문

아래의 for 반복문은 배열을 출력하기 위한 반복문 정도로만 이해하면 된다.

 

※동적할당의 경우 메모리 낭비를 없애기 위해 반드시 해당 포인터를 delete 해줘야한다.

 

 

#코드 첨부 (텍스트)

#include <iostream>

using namespace std;

int main() {
	
	int* arr; //배열 포인터 선언
	int len; // 입력 받을 배열 길이 
	int value; // 배열 값 

	cout << "생성할 배열의 크기 입력 :"; 
	cin >> len;

	arr = new int[len];

	for (int i = 0; i < len; i++)
	{
		cout << i+1<< "번째 배열 값 입력 : ";
		cin >> value;
		arr[i] = value;
	}
	
	for (int i = 0; i < len; i++)
	{
		cout << arr[i] << ' ';
	}
	delete[] arr;
}

 

 

 

2.문자형 배열 (사진)

: 띄워쓰기 공백을 NULL값(\0)으로 인식하여 다음행으로 입력이 되는걸로 예상

 

 

int main() {

	int len;
	string value;

	cout << "배열 크기 입력 :";
	
	cin >> len;
	string* ptr = new string[len];

	for (int i = 0; i < len; i++) {
		cout << i + 1 << "번째 배열 값 입력 : ";
		cin >> value;
		ptr[i] = value;
	}

	cout << "배열 값 출력 : ";

	for (int i = 0; i < len; i++)
	{
		cout << ptr[i] << ' ';
	}
	
	cout << endl;
	
	cout << " 사이즈 : " << sizeof(ptr) << endl;
	cout << "&ptr + 1 " << &ptr + 1 << endl;
	cout << "&ptr + 2 " << &ptr + 2 << endl;
	cout << endl;
	
	delete[] ptr;
}