Динамические массивы




В предыдущих курсах про массивы мы рассматривали создание массива таким способом: 
 
const int N = 10;
int A[N]

 или 

int A[10];

такой способ создает статический массив. Одним из недостатков является то, что размер массива задается константой и не позволяет размер массива считать с клавиатуры.
 
Поэтому есть другой тип массива : динамический массив, размер которого можно задать с клавиатуры:
 
int N;
scanf("%d", &N);
int *mas = malloc (sizeof(int) * N);   //Си

или 

int* A = new int [N];       // Си++
 
а очистка массива соответственно:
 
 free(mas);

и
   
 delete []mas;
 
К сожалению, изменить размер массива можно только если он создан с помощью оператора malloc, тогда нужно использовать realloc. Если же для создания массива использовалось new, то для изменения размера надо создать второй массив нужно размера, в который перенести данные, а старый очистить.
 
 
 

Task
Дана последовательноть состоящая из целых чисел. Напишите программу, которая создает массив и записывает в него последовательность два раза подряд.
 
Входные данные
Сначала задано число N — количество элементов в последовательности (1<= N <= 100). Далее через пробел записаны N чисел.
 
Выходные данные
Необходимо вывести массив состоящий из продублированной последовательнсти.

Ввод Вывод
3
1 2 3
1 2 3 1 2 3

C++
Write a program below
#include "stdio.h"

int main()
{
  int N;
  scanf("%d", &N);
    
 for(int i = 0 ; i < 2*N; i ++)
  {
  	printf("%d ", A[i]);
  }	
  
     return 0;
	
}    
Your last submission is saved in the editor window.
     

Results:

All results: