일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 메서드오버로딩
- 1차원배열
- 포인터연산자
- 고정소수점
- 클래스선언
- 기초코딩
- 자바코드
- C++
- 증감연산자
- 산술연산자
- 2차원배열
- 반복문
- 부동소수점
- 코딩기초
- 자바
- 포인터
- 비트연산자
- 코딩
- this참조변수
- 자바클래스
- 코딩독학
- 자바코딩
- C++상수
- 자바메서드오버로딩
- 변수
- C++코딩
- 프로그래밍
- 조건문
- 제어문
- Java
- Today
- Total
지식아일랜드
코딩 기초 31편 _ C++ 배열의 포인터 연산, 메모리의 동적 할당(new, delete 연산자) 본문
안녕하세요?
지식아일랜드의 모르는 게 없는 지식인입니다.
오늘 알려드릴 C++ 코딩 주제는 바로 배열의 포인터 연산,
그리고 new 연산자와 delete 연산자를 활용한 메모리의 동적 할당입니다.
배열의 포인터 연산
먼저, 배열의 포인터 연산에 대해 예제 코드와 함께 설명드리겠습니다.
#include <iostream>
using namespace std;
int main() {
int arr[5] = {10, 20, 30, 40, 50}; // 배열 선언 및 초기화
int* ptr = arr; // 포인터에 배열의 첫 번째 요소의 주소를 할당
cout << "배열의 요소와 포인터 연산을 통한 접근:\n";
for (int i = 0; i < 5; i++) {
cout << "arr[" << i << "]: " << arr[i] << endl;
cout << "ptr + " << i << ": " << *(ptr + i) << endl;
}
return 0;
}
위 코드는 배열 내의 요소에 포인터 연산을 사용하여 접근하는 방법을 보여줍니다.
주요한 점은 'ptr'이라는 포인터를 선언하고, 배열의 첫 번째 요소인 'arr'의 주소를 할당하는 것입니다.
포인터 'ptr'을 사용하여 배열에 접근하고 값을 출력합니다.
프로그램을 실행하면, 배열의 요소와 포인터 연산을 통한 접근이 출력됩니다.
각 반복에서 i번째 배열 요소인 arr[i]와 ptr + i의 값을 출력합니다.
ptr + i는 포인터 ptr의 현재 주소에서 i만큼의 오프셋을 더한 주소를 나타냅니다.
*(ptr + i)는 해당 주소에 있는 값을 역참조하여 가져옵니다.
이 코드를 통해 포인터 연산을 사용하여 배열의 요소에 접근하는 방법을 이해할 수 있습니다.
포인터를 사용하여 배열 요소에 접근하고 조작하는 것은 메모리 효율적인 코드를 작성하는 데 도움이 됩니다.
포인터 연산을 사용하면 배열의 요소에 순차적으로 접근하거나 특정 위치로 이동하여 접근할 수 있습니다.
메모리의 동적 할당(dynamic allocation)
다음으로는 메모리의 동적 할당에 대하여 new 연산자와 delete 연산자를 이용한 예제 코드를 통해 설명드리겠습니다.
#include <isotream>
using namespace std;
int main() {
int size;
cout << "할당할 배열의 크기를 입력하세요: ";
cin >> size;
int* arr = new int[size]; // 동적 할당
cout << "배열에 값을 입력하세요:\n";
for (int i = 0; i < suze; i++) {
cout << "arr[" << i << "]: ";
cin >> arr[i];
}
cout << "입력한 배열의 값은 다음과 같습니다:\n";
for (int i = 0; i < size; i++) {
cout << "arr[" << i << "]: " << arr[i] << endl;
}
delete[] arr; // 동적 할당 해제
return 0;
}
위 코드는 사용자로부터 배열의 크기를 입력받은 후,
그 크기에 맞는 배열을 동적으로 할당하고 값을 입력받은 다음, 할당한 배열의 값을 출력합니다.
주요한 점은 new 및 delete[] 연산자입니다.
new 연산자를 사용하여 int 형식의 배열을 동적으로 할당합니다.
delete[] 연산자를 사용하여 동적 할당한 메모리를 해제합니다.
프로그램을 실행하면 먼저 사용자로부터 배열의 크기를 입력하라는 메시지가 표시됩니다.
사용자는 양수인 정수를 입력하여 배열의 크기를 지정합니다.
다음으로, 배열에 값을 입력하기 위해 "배열에 값을 입력하세요:"라는 메시지가 표시됩니다.
사용자는 배열의 각 요소에 값을 입력합니다.
마지막으로 입력한 배열의 값이 "입력한 배열의 값은 다음과 같습니다:"라는 메시지와 함께 출력됩니다.
마지막으로 동적으로 할당한 배열을 해제하기 위해 delete[] 연산자를 사용합니다.
이 코드를 통해 동적 할당의 개념을 이해할 수 있습니다.
동적 할당은 실행 중에 필요한 메모리를 할당하고 사용한 후에는 해제하여 메모리를 반환하는 프로세스입니다.
이를 통해 유연한 메모리 관리를 할 수 있습니다.
어떠셨나요?
오늘은 C++ 코딩 배열의 포인터 연산과 메모리의 동적 할당에 대해 설명드렸는데요.
차근차근 예제와 함께 학습하셔서 코딩 마스터가 되시길 바라겠습니다.
그럼 저는 다음 포스팅 C언어 스타일의 문자열로 돌아오겠습니다.
감사합니다!
'C++ 기초' 카테고리의 다른 글
코딩 기초 32편 _ C언어 스타일의 문자열, String 클래스를 이용한 문자열 (0) | 2023.07.10 |
---|---|
코딩 기초 30편 _ C++ 코딩 포인터 연산, 포인터와 배열의 관계 (0) | 2023.06.23 |
코딩 기초 29편 _ C++ 코딩 포인터(Pointer) 선언과 초기화, 포인터 참조 예제 (0) | 2023.06.21 |
코딩 기초 28편 _ C++ 코딩 데이터 주소값, 포인터 개념, 포인터 연산자 종류 (0) | 2023.06.19 |
코딩 기초 27편 _ C++ 코딩 2차원 배열 선언과 동시에 초기화하는 방법 (0) | 2023.06.16 |