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

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

05.11.2020, 11:39. Показов 1153. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Горю желанием создать структуры данных без всяких импортов, однако всё время утопаю в каких-то ошибках. Тут просто хотел сделать динамический массив с push_back, но вылетает ошибка на "delete[] address;". Если не сложно - подскажите ошибки.

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
#include <iostream>
#include <locale>
 
 
struct movArr
{
    int size = 0;
    int* start_pntr;
 
    int* Push_Arr(int* address)
    {
        int* pntr;
        pntr = new int[size + 1];
        for (int i = 0; i < size; i++)
            *(pntr + i) = *(address + i);
        size++;
        std::cin >> *(pntr + size);
        if (size != 1)
            delete[] address;
        return pntr;
    }
 
};
 
int main()
{
    setlocale(LC_ALL, "RUS");
    int* PArr;
    bool next = true;
    movArr Arr;
    PArr = Arr.Push_Arr(Arr.start_pntr);
    while (next)
    {
        PArr = Arr.Push_Arr(PArr);
        std::cout << "next?\n";
        std::cin >> next;
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.11.2020, 11:39
Ответы с готовыми решениями:

Точечная микросварка "на коленках"
Форумчане! Вот возникла такая проблема: на днях пришлось чинить модуль от беспроводной метеостанции. Модуль автономный, и внутри у него в...

Передача массива данных в Excel или создание двумерного динамического массива
Нашел на просторах вот такое: Dim oExcel As Object Dim oBook As Object Dim oSheet As Object 'Открыть новую книгу...

Функция с применением динамического массива, чтобы размер массива увеличивался по мере необходимости
Ребята, подскажите, кто может, каким образом создать функцию с применением динамического массива, но так, чтобы размер массива увеличивался...

6
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
05.11.2020, 11:57
Цитата Сообщение от Pistoletov Посмотреть сообщение
Если не сложно - подскажите ошибки.
код одна большая ошибка.
0
0 / 0 / 0
Регистрация: 17.07.2020
Сообщений: 7
05.11.2020, 12:07  [ТС]
Понимаю, но хотелось бы указать мне где я неправильно работаю с С++. Я пытаюсь просто делать подвижки самостоятельно, сделать криво, тяп-ляп, но через себя пронести.
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
05.11.2020, 12:15
Цитата Сообщение от Pistoletov Посмотреть сообщение
Понимаю
что делает по твоему данная функция?
Цитата Сообщение от Pistoletov Посмотреть сообщение
int* Push_Arr(int* address)
0
0 / 0 / 0
Регистрация: 17.07.2020
Сообщений: 7
05.11.2020, 12:28  [ТС]
Функция создает указатель, где зарезервировано на 1 больше прежнего ячеек. Заносит значения с прошлого массива в этот, а на последний слот ставит то, что было в cin, после чего возвращает новый указатель, где слотов на 1 больше.
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
05.11.2020, 12:50
Лучший ответ Сообщение было отмечено Pistoletov как решение

Решение

Pistoletov,
она принимает в качестве параметра какой то адрес, дальше резервирует память в куче, затем выполняет цикл size раз.
Где гарантия того что массив переданный данной функции равен size ?

Добавлено через 2 минуты
Цитата Сообщение от Pistoletov Посмотреть сообщение
std::cin >> *(pntr + size);
функция вставки не должна выводить в стандартный вывод ничего, это не ее задача

Добавлено через 1 минуту
Цитата Сообщение от Pistoletov Посмотреть сообщение
но вылетает ошибка на "delete[] address
ты пустой указатель функции передал, то есть address ни на что не ссылается

Добавлено через 16 минут
Цитата Сообщение от _stanislav Посмотреть сообщение
функция вставки не должна выводить в стандартный вывод ничего, это не ее задача
то есть функция push_back вообще должна принимать в качестве аргумента просто значение, о том как это значение пришло ее знать не нужно.
и все манипуляции с памятью должны происходить внутри класса vector
1
0 / 0 / 0
Регистрация: 17.07.2020
Сообщений: 7
05.11.2020, 13:27  [ТС]
Спасибо больше за замечания. Осознал ошибки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.11.2020, 13:27
Помогаю со студенческими работами здесь

Создайте класс динамического массива, в котором реализована проверка выхода за границы массива
Народ подскажите такую вещь я написал программку для вставки элементов в массив при этом осуществляется проверка границ массива ! ...

Создайте класс динамического массива, в котором реализована проверка выхода за границы массива
Создайте класс динамического массива, в котором реализована проверка выхода за границы массива. Перегрузите операторы: , =, +, -,++...

Создайте класс динамического массива, в котором реализована проверка выхода за границы массива
Создайте класс динамического массива, в котором реализована проверка выхода за границы массива. Перегрузите операторы: , =, +, -,++ ...

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

Почему при создании динамического массива через new ячейки массива имеют значение -842150451?
Я хотел бы узнать почему при создании динамического массива через операцию new ячейки массива имеют значение -842150451. #include...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
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 . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru