Problem

1/1

동적 배열: 시작

Theory Click to read/hide

동적 배열
배열에 대한 이전 과정에서 다음과 같이 배열을 만드는 방법을 살펴보았습니다.
 
const int Nmax = 1000; 정수 A[Nmax]; 또는 이: intA[1000];
이 메소드는 정적 배열을 생성합니다. 한 가지 단점은 프로그램이 실행되는 동안 배열 요소의 크기와 유형을 변경할 수 없다는 것입니다. 
위의 예에서는 1000개 요소의 정적 배열이 만들어집니다. 즉, int 유형의 1000개 요소(int 유형의 1000개 요소 배열)를 저장하기 위해 메모리에 영역이 할당됩니다. 배열의 시작 주소는  A 변수에 저장됩니다. 1000개 이상의 요소 배열을 처리해야 하는 경우 설명을 변경하고 프로그램을 다시 컴파일해야 합니다. 작은 배열로 작업할 때 정적 배열에 할당된 대부분의 메모리가 낭비됩니다.

컴퓨터 메모리를 효율적으로 사용하기 위해서는 동적으로 할당하는 것이 필요합니다. 즉, 필요에 따라 프로그램 실행 중에 개체에 대한 메모리를 할당해야 합니다(새 개체 생성).

C++에서  new 및 delete 작업은 컴퓨터 메모리를 동적으로 할당하도록 설계되었습니다.  작업 new  여유 메모리 영역에서 메모리를 할당하고 delete 작업은 할당된 메모리를 할당 해제합니다. 
 
동적 변수 생성 및 삭제 예시
int *A = 새 int; // int 타입의 객체 생성 *A = 15; // 객체 초기화는 포인터(*)를 통해 발생합니다. // 즉시 초기화 가능 // 동적 객체를 선언할 때 int *B = 새로운 int(25); cout << *A << " " << *비; // 포인터로 값 출력 삭제A; // 할당된 메모리 해제 B 삭제; new 작업은 지정된 유형의 개체를 만들고 메모리를 할당하며 지정된 메모리 위치에 대한 올바른 유형의 포인터를 반환합니다. 예를 들어 여유 공간이 없는 경우와 같이 메모리를 할당할 수 없는 경우 널 포인터가 반환됩니다. 즉, 포인터는 값 0을 반환합니다. 모든 데이터 유형에 대해 메모리 할당이 가능합니다. int float, doublechar 등.

같은 방식으로 C++에서는 동적 메모리 할당을 사용할 동적 배열을 생성할 수 있습니다. 프로그램이 실행되는 동안 예를 들어 키보드에서 동적 변수를 생성하는 데 사용할 수 있는 이러한 배열의 크기입니다.
 
C 문법
intN; scanf("%d", &N); int *mas = malloc (sizeof(int) * N); // 나중에 배열 크기를 조정하기 위해 // realloc에서 사용합니다. ... 무료(마스); // 할당된 메모리 해제 <사업부>
C++ 구문에서
intN; cin>> N; int*A = 새로운 int[N]; // 배열의 크기를 변경하려면 다음을 수행할 수 있습니다. // 데이터를 다른 배열로 전송하고 이전 배열을 지웁니다. ... 삭제 []mas; // 할당된 메모리 해제 // 대괄호는 다음을 나타냅니다. // 배열 아래에서 메모리를 해제하고 있음

Problem

정수 시퀀스가 ​​주어집니다. 배열을 만들고 배열에 시퀀스를 두 번 연속으로 쓰는 프로그램을 작성하세요.
 
입력 
처음 주어진 숫자 N — 시퀀스의 요소 수(1<= N <= 100). 그런 다음 N개의 숫자가 공백으로 구분되어 기록됩니다.
 
출력 
중복된 시퀀스로 구성된 배열을 출력해야 합니다.
 
<헤드> <일># <몸>
입력 출력
1 3
1 2 3
1 2 3 1 2 3
Write the program below
#include <iostream>

using namespace std;

main()
{
  int N;
  cin >> N;
        
 for( int i = 0 ; i < 2*N; i ++ )
  {
  	cout << A[i] << " ";
  }	
  
}        

     

Program check result

To check the solution of the problem, you need to register or log in!