Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Добавить значение в конец динамического массива (имитация функции вектора) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Расставить 8 ферзей на шахматной доске 8 на 8, которые не бьют друг друга http://www.cyberforum.ru/cpp-beginners/thread724481.html
Нужно написать программу которая расставляет на шахматной доске 8 ферзей, которые не бьют друг друга. обязательно использование рекурсии, ну и struct . Извините если такая тема была, интернет...
C++ ifstream читает файл со второй строки Добрый день, читаю файл через fstream и записываю его, запись идет только со второй строки, не могу понять почему #include <iostream> #include <cctype> #include <fstream> #include <string>... http://www.cyberforum.ru/cpp-beginners/thread724479.html
Одномерные динамические массивы (осуществить ввод, проверку, вывод результатов) C++
Очень прошу помочь с написанием этой программы.Говорят что легкая но у меня никак не выходит.Частями вроде бы получается, однако все детали, предложенные здесь, сделать не могу :( Одномерные массивы...
C++ Ошибка инициализации объекта, конструктором класса
Добрый день. Написал программу. Создание класса (упражнение из книги Дейтеля) "Создайте класс с именем Account, которым мог бы воспользоваться банк для представления банковских счетов своих...
C++ Структуры (напечатать самое распространенное женское имя) http://www.cyberforum.ru/cpp-beginners/thread724434.html
Приветствую! Всем хорошего настроения! Только вот у меня его совсем нет..... Сессия на носу, необходимо последнюю лабораторку допинать, а не получается:( Если кто нибудь поможет, буду очень...
C++ Прерывания Друзья, вот архив с DOC-ким файлом, помогите реализовать программу,задание под пунктом ПРИМЕР ВЫПОЛНЕНИЯ ЛАБОРАТОРНОЙ РАБОТЫ подробнее

Показать сообщение отдельно
daslex
1280 / 524 / 107
Регистрация: 02.08.2011
Сообщений: 2,739
09.12.2012, 17:40  [ТС]
Решил)))
Но почему так выходило не понял всё равно


C++
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
using namespace std;
 
void show(int **P,int &N)  //Показываю
{
 for (int i=0;i<N-1;i++) cout<<(*P)[i]<<"  ";
 cout<<endl;
}
 
 
void create(int **P, int &N) //Создаю
{
 *P=new int[N]; // Выделяю память
 for (int i=0;i<N;i++) (*P)[i]=i+1;// Заполняю по порядку
}
 
void Add(int **P,int &N, int x) //Добавляю одно значение в конец массива
{ 
  int *temp=new int[N]; //Выделяю новую память
  for (int i=0;i<N;i++) temp[i]=(*P)[i]; //Записываю туда данные
  delete [](*P); //вот так освобождаю массив, принятый функцией
 
  *P=new int[N+1]; //Выделяю для массива, принятой функцией новую память
  for (int i=0;i<N;i++) (*P)[i]=temp[i];//Записываю в массив значения из временного массива
  (*P)[N-1]=x; //Записываю новое значение в самый конец
 N++; //Увеличиваю число элементов
delete []temp; //освобождаю память от временного массива
}
 
 
void main()
{
 
 int *P=NULL;
 int N=0;
 cin>>N;
 
 
 create(&P,N); //Создал
 show(&P,N); //Показал исходный
 
 for (int i=0;i<100;i++) //Тест добавлений с помощью цикла
 {
 Add(&P,N,i+2); //Добавил один элемент
 show(&P,N); //Показал результат
 }
 delete []P; //Освободил память
 
}
Nixy, В принципе это ваш подход, только код мой. Спасибо за помощь. Интересно, будет ли работать в вашем компиляторе, а-то кто знает. Может обратная ситуация возникает.

Хотелось бы увидеть код попроще.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru