Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
1 / 1 / 2
Регистрация: 30.07.2014
Сообщений: 98

Удаление динамического массива с сохранением его значений

18.09.2014, 19:56. Показов 1191. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как в функции add удалить дин массив ptzz но при этом оставить его значения в ptz?
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <iostream>
#include <ctime>
using namespace std;
 
template <typename T>
void menu(T ptz, int n);
template <typename T>
void create (T &ptz, int &n);
template <typename T>
void fill (T ptz, int n);
template <typename T>
void out (T ptz, int n);
template <typename T>
void add (T *&ptz, int &n);
 
void main(){
int size=0;
int *mas=NULL;
menu (mas, size);
}
 
template <typename T>
void menu(T ptz, int n){
cout <<"work with a dynamic one-dimensional array\n";
cout <<"1)creating an array\n";
create (ptz, n);
cout <<"2)filling an array\n";
fill (ptz, n);
cout <<"3)output of array\n";
out (ptz, n);
cout <<"4)adding of the element\n";
add (ptz, n);
out (ptz, n);
}
 
template <typename T>
void create (T &ptz, int &n){
cout <<"input size of array\n";
cin >>n;
ptz= new int [n];
}
 
template <typename T>
void fill (T ptz, int n){
    for (int i=0; i<n; i++){
    cout <<"input "<<i+1<<" element\n";
        cin >>ptz[i];
    }
}
 
template <typename T>
void out (T ptz, int n){
for (int i=0; i<n; i++){
    cout <<i+1<<" element is "<<ptz[i]<<endl;
    }
}
 
template <typename T>
void add (T *&ptz, int &n){
int p=0, f=0;
cout <<"input figure\n";
cin >>f;
cout <<"input position of your figure\n";
cin >>p;
T *ptzz=new T [p];
if (p>n){
    for (int i=0; i<p; i++){
        if (i<n)
    ptzz[i]=ptz[i];
        else
            (i+1==p)?ptzz[i]=f:ptzz[i]=0;
    }
    ptz=ptzz;
        n=p;    
}
else
    ptz[p-1]=f;
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.09.2014, 19:56
Ответы с готовыми решениями:

Создание динамического массива структур и его удаление
Господа, поясните пожалуйста следующий момент: создаю структуру: struct TTagList { WideString Comment; int...

Для динамического массива подсчитать количество его элементов, больших последнего его элемента
Для динамического массива подсчитать количество его элементов, больших последнего его элемента.

Для динамического массива подсчитать количество его элементов, равных первому его элементу
Для динамического массива подсчитать количество его элементов, равных первому его элементу.

3
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
18.09.2014, 20:18
Vladislavv, удалять надо старый массив ptz, а потом уже присвоить ему новый указатель.
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
18.09.2014, 20:20
Лучший ответ Сообщение было отмечено Vladislavv как решение

Решение

C++
1
int *mas=NULL;
int* mas = nullptr;
C++
1
2
cin >>n;
ptz= new int [n];
А если введут 0 или -15?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void main(){
int size=0;
int *mas=NULL;
menu (mas, size);
}
 
template <typename T>
void menu(T ptz, int n){
cout <<"work with a dynamic one-dimensional array\n";
cout <<"1)creating an array\n";
create (ptz, n);
cout <<"2)filling an array\n";
fill (ptz, n);
cout <<"3)output of array\n";
out (ptz, n);
cout <<"4)adding of the element\n";
add (ptz, n);
out (ptz, n);
}
У тебя не меняется значение size, только n которая вскорее умирает.....
Цитата Сообщение от Vladislavv Посмотреть сообщение
как в функции add удалить дин массив ptzz но при этом оставить его значения в ptz?
1)создай новый массив, новой длины
2)скопируй с старого массива все элементы в новый
3) освободи память по указателю на старый массив
4) запиши в старый указатель память на которую указывает указатель с 1 пункта.
5) Profit!
1
1 / 1 / 2
Регистрация: 30.07.2014
Сообщений: 98
19.09.2014, 00:12  [ТС]
для удаления старого массива использовал такую конструкцию delete [] ptz;
ptz=ptzz; выдает мусор
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.09.2014, 00:12
Помогаю со студенческими работами здесь

Для динамического массива подсчитать количество его элементов, равных первому его элементу
Для динамического массива подсчитать количество его элементов, равных первому его элементу. Добавлено через 1 час 39 минут помогите...

Подскажите простую реализацию динамического массива и его использование с возможностью изменения его размера
Подскажите простую реализацию динамического масива и его использование с возможностью изменения его размера........спасибо))) ...

Для динамического массива подсчитать количество его элементов, больших последнего его элемента
Для динамического массива подсчитать количество его элементов, больших последнего его элемента. Добавлено через 1 час 18 минут ...

Для динамического массива подсчитать количество его элементов, равных первому его элементу
Для ДИНАМИЧЕСКОГО массива подсчитать количество его элементов, равных первому его элементу. В задаче нужно использовать динамические...

Для динамического массива подсчитать количество его элементов, равных первому его элементу
Для динамического массива подсчитать количество его элементов, равных первому его элементу.


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru