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

Как увеличить размер дин. массива средствами С++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Подскажите. Не компилирует текст программы, запрашивает в коде мол не достающую скобку. Ниже приведен текст программы. http://www.cyberforum.ru/cpp-beginners/thread279734.html
#include <iostream.h> unsigned int perimetr ( int a,int b); int main() { int a,b; cin >> a; cin >> b; cout << "perimetr=" << perimetr(a,b) ; return 0;
C++ Срочно! Алгоритм Бауэра Замельзона! #include <stdio.h> #include <math.h> #include <iostream> using namespace std; char stack_z; double stack_c; int tos_z=0; int tos_c=0; char number; http://www.cyberforum.ru/cpp-beginners/thread279733.html
C++ кейрус отказывается работать!!
вроде уже какой по счёту кейрус скачиваю с инета.. устанавливаю а в борланде язык не переключается((( или мб это из за того что у меня вин 7 ? Добавлено через 36 секунд чё подскажите сделать с моей бедой?
Как разбить массив по 3 елемента и засунуть в другой массив C++
Здарова форумчане. Помогите, кому не лень решить задачу по программированию на c++ Кароче нам дан массив чисел от 1 до 18. Сначала нам нужно разбить массив по три елемента, т.е от 1 до 3, от 3 до 6, от 6 до 9, от 9 до 12, от 12 до 15 и от 15 до 18. И получается 6 кусков. Из каждого куска нужно вывести среднее арифметическое. И все эти арифметические занести в одномерный массив. Потом из этого...
C++ Прерывание http://www.cyberforum.ru/cpp-beginners/thread279713.html
При вызове прерывание компилятор пишет ошибка доступа. #include <iostream> using namespace std; char a = "hello"; int main() { _asm {
C++ Переход с формы на форму Сетяне, скажите! Какой код нужно писать чтобы при нажатии кнопки открылось другое окно? буду безгранично благодарен :~) подробнее

Показать сообщение отдельно
FireNovel
 Аватар для FireNovel
150 / 73 / 8
Регистрация: 09.04.2010
Сообщений: 297
19.04.2011, 22:22     Как увеличить размер дин. массива средствами С++
Привет всем!!!
Подскажите плз, как увеличить размер (т.е добавить один элемент в конец) динамического массива средствами С++. (new и delete)

Пример:
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
50
51
52
53
54
55
#include <iostream>
#include <process.h>
#include <new.h>
 
using std::cout;
 
class Sample
{
public:
    Sample(int _a = 0) : a(_a) {}
    ~Sample() {}
private:
    int a;
    friend std::ostream &operator<< (std::ostream &stream, Sample &obj);
};
 
std::ostream &operator<< (std::ostream &stream, Sample &obj)
{
    stream << obj.a;
    return stream;
}
 
 
int main()
{
    int  n = 2;
    Sample *p = new Sample[n];
    p[0] = Sample(1);
    p[1] = Sample(2);
 
    for (int i = 0; i < n ; i++)
        cout << p[i] << '\n';
 
    ++n;
 
    //realloc(p, n*sizeof(Sample));   // вызывает ошибкупосле запуска на стадии работы (проблемы с кучей)
 
    // вместо realloc придумал следующее шаманство 
    Sample *temp = new Sample[n];
    for (int i = 0; i < n-1 ; i++)
        temp[i] = p[i];
 
    temp[n-1] = Sample(3);
    delete [] p;
 
    p = temp;
    /////////////////////////////////////////////////////////////
 
    for (int i = 0; i < n ; i++)
        cout << p[i] << '\n';
    
    delete [] p;
    system("pause");
 
}
Это можно решить с помощью malloc() и free() и realloc() заработает, но я так не хочу.

По поводу моей придумки с выделением еще одного блока памяти на единицу большего размера, думаю так не покатит, ибо если первый массив состоит из нескольких Гб то никто не будет выделять еще столько же памяти для добавления одного элемента в массив.

Посоветуйте стонибуть
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru