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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Ioan
0 / 0 / 0
Регистрация: 29.12.2012
Сообщений: 27
#1

Динамическое увеличение размера динамического массива - C++

29.12.2012, 16:28. Просмотров 1284. Ответов 3
Метки нет (Все метки)

Никак не могу понять как это исправить.. Помогите, пожалуйста, разобраться в чём дело:


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
struct myPoint
           {
           int x; 
           int  y;
           };
           int qbordlength = 0;
    myPoint* qbord = new myPoint[qbordlength];
    myPoint* dop;
 
           dop = new myPoint [qbordlength];
    for(int i=0;i<qbordlength;i++) dop[i] = qbord[i];
    qbordlength+=2;
    qbord = new myPoint[qbordlength];
    for(int i=0;i<qbordlength-2;i++) qbord[i]=dop[i];
    qbord[qbordlength-1] = e;
    qbord[qbordlength] = w;
    delete [] dop;
В итоге на выходе получается, что через один элемент (qbord[2*n+1]) равен какой-то отрицательной громадной фигне, но никак не своему должному небольшому положительному значению. Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.12.2012, 16:28     Динамическое увеличение размера динамического массива
Посмотрите здесь:

C++ Увеличение максимального размера массива
Увелечение размера динамического массива C++
Увеличение динамического массива C++
C++ Измерение размера динамического массива
Увеличение размера массива из элементов собственного класса C++
C++ Функция изменения размера динамического массива
C++ Изменение размера динамического массива (resize)
Определение размера динамического массива строк C++
C++ Увеличение элемента динамического массива
C++ Изменение размера динамического массива
Увеличение размерности динамического массива C++
C++ Определение размера динамического массива

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
29.12.2012, 17:15     Динамическое увеличение размера динамического массива #2
сразу можно сказать одно - используйте вектор, меньше будет мороки в будущем.
Jupiter
Каратель
Эксперт С++
6550 / 3970 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
29.12.2012, 17:23     Динамическое увеличение размера динамического массива #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
int size = 10;
myPoint* qbord = new myPoint[size];
int newSize = 20;
myPoint* tmp = new myPoint[newSize];
 
for (int i = 0; i < size; ++i)
    tmp[i] = qbord[i];
 
delete [] qbord;
qbord = tmp;
//...
delete [] qbord;
Ioan
0 / 0 / 0
Регистрация: 29.12.2012
Сообщений: 27
29.12.2012, 21:03  [ТС]     Динамическое увеличение размера динамического массива #4
Спасибо! Теперь всё работает как надо
Yandex
Объявления
29.12.2012, 21:03     Динамическое увеличение размера динамического массива
Ответ Создать тему
Опции темы

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