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

Ошибка при вызове delete

29.10.2017, 01:37. Показов 1517. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот код
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
// ConsoleApplication1.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
using namespace std;
 
void main()
{
    int entr = 0, count = 1;
    cin >> entr;
    int *a = new int[1];
    while (entr >= 0)
    {
        if (count == 1)
        {
            a[count] = entr;
            count++;
        }
        cin >> entr;
        int *t = new int[count];
        for (int i = 0; i < count; i++)
        {
            t[i] = a[i];
            a[count - 1] = entr;
        }
        delete[] a;
        int *a = new int[count];
        for (int i = 0; i < count; i++)
        {
            a[i] = t[i];
        }
        count++;
    }
}
При вызове
C++
1
delete[] a;
программа вылетает, в чём может быть проблема ?

А сама задача состоит в том, чтобы когда пользователь вводит число, оно записывалось в массив, когда пользователь вводит второе число, массив должен увеличится на 1 и сохранить уже 2 числа, и так далее, пока пользователь не введёт отрицательное число
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.10.2017, 01:37
Ответы с готовыми решениями:

Ошибка при вызове деструктора (при вызове delete в деструкторе)
Не могу найти ошибку, при вызове деструктора от класса, который был создан при помощи конструктора с параметром const String &amp;,...

_block_type_is_valid при вызове delete()
код для генерации случайного графа #define m 3 //Число входящих и исходящих ребер. #define N 200 //Минимально требуемое число...

При вызове delete[] _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
Функция strtok влияет на массив second, после чего его невозможно удалить, не могу понять чего. first удаляет без проблем. FILE*...

7
1617 / 1182 / 553
Регистрация: 08.01.2012
Сообщений: 4,561
29.10.2017, 05:31
Цитата Сообщение от Jiooo123 Посмотреть сообщение
int *a = new int[1];
...
0
0 / 0 / 1
Регистрация: 16.10.2017
Сообщений: 11
29.10.2017, 14:00  [ТС]
Пробовал написать int *a = new int[count], толку ноль, та же ошибка
0
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
29.10.2017, 14:21
в 28 строке вы создаете локальный указатель a, а delete[] удаляет другой a, тот который определен в 12 строке. Или он вообще не знает какой а удалять
0
1617 / 1182 / 553
Регистрация: 08.01.2012
Сообщений: 4,561
29.10.2017, 14:29
Цитата Сообщение от Jiooo123 Посмотреть сообщение
if (count == 1)
* * * * {
* * * * * * a[count] = entr;
...
0
0 / 0 / 1
Регистрация: 16.10.2017
Сообщений: 11
29.10.2017, 15:56  [ТС]
Переписал вот так
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
void main()
{
    int entr = 0, count = 0;
    int *a = new int[count];
    int *t;
    while (entr >= 0)
    {
        cout << "/nEnter number: ";
        cin >> entr;
        if (entr < 0)
            break;
        if (count == 0)
        {
            a[count] = entr;
            cout << a[count];
            count++;
        }
        else
        {
            t = new int[count + 1];
            for (int i = 0; i < count; i++)
            {
                t[i] = a[i];
            }
            t[count] = entr;
            delete[]a;
            a = new int[count + 1];
            for (int i = 0; i < count + 1; i++)
            {
                a[i] = t[i];
                cout << a[i] << " ";
            }
            delete[]t;
            count++;
        }
    }
}
Всё равно вылетает
0
 Аватар для kazak
3602 / 2743 / 355
Регистрация: 11.03.2009
Сообщений: 6,304
29.10.2017, 16:02
Лучший ответ Сообщение было отмечено Jiooo123 как решение

Решение

Цитата Сообщение от Jiooo123 Посмотреть сообщение
int entr = 0, count = 0;
* * int *a = new int[count];
Это как?
1
0 / 0 / 1
Регистрация: 16.10.2017
Сообщений: 11
29.10.2017, 16:28  [ТС]
Цитата Сообщение от kazak Посмотреть сообщение
Это как?
Всё, спасибо, исправил на 1, программа полностью рабочая )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.10.2017, 16:28
Помогаю со студенческими работами здесь

При вызове деструктора в строке delete[] data выбрасывается исключение
вот как раз вопрос по этой теме. программа отрабатывает все команды и в конце при вызове деструктора в строке delete data выбрасывает...

Ошибка при delete[]
Не понимаю, почему при delete Y; выдает ошибку. Без этой строки код работает на ура. Надеюсь на вашу помощь. Что делает программа: ...

Ошибка при вызове метода класса, при чтении из файла
добрый день, пытаюсь считать данные из и запихнуть их в список в файле у меня вот такие данные a01 b10 А и Б надо запихнуть в...

Ошибка при использовании new[] / delete[]
Здравствуйте. Пишу учебную программу, моделирующую движение лифта (если кто учебник Дейтелов читал, тот поймет :) ). Для начала приведу...

Ошибка при использовании delete[] C++
Здравствуйте. Я создал класс, где должен динамически выделить память, а потом в конце программы, с помощью деструктора, освободить...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru