Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Deimos_
36 / 35 / 32
Регистрация: 24.11.2014
Сообщений: 324
1

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

25.10.2016, 21:52. Просмотров 1145. Ответов 10
Метки нет (Все метки)

Я в шоке оказывается надо еще удалять массив из памяти когда его создаешь.
Всегда писал на шарпе таких проблем там не было а тут на тебе еще и удалять его надо
Простой пример
C++
1
2
3
4
5
6
7
//--------------------------------------Заполнить массив случаныйми числами--------------------------------------
        for ( int i = 0; i < size; i++ )
        {
            myArray[i] = rand () % 20 + 1;
            cout << i + 1 << ": " << myArray[i] << "\n";
        }
        //----------------------------------------------------------------------------------------------------------------
Я создал массив а потом хочу удалить
C++
1
2
3
4
for ( int i = 0; i < size; i++ )
            delete [] myArray[i];
 
        delete [] myArray;
он мне myArray подчеркивает и ругается что
Ошибка 1 error C2541: delete: нельзя удалять объекты, не являющиеся указателями
По форуму прошелся все тоже самое говорят или Memset или delete ни то ни другое не работает

Я хочу что бы при каждом запуске он заполнялся по новому
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2016, 21:52
Ответы с готовыми решениями:

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

Сортировка динамического одномерного массива
void Sort(int *l, int n) { for (*(l + 1) = 0; *(l + 1)&lt;n - 1; *(l + 1)++) for (*(l + 2) = *(l...

Обработка одномерного динамического массива
создать одномерный динамический массив произвольного размера.Заполнить его случайным...

Из динамического одномерного массива в статический
Здравствуйте! Я хотел бы попросить вас показать на данном примере, как изменится код программы, в...

Объявление динамического одномерного массива.
БИЛЕТ №14 3. Составьте программу, в которой объявляется динамический одномерный массив...

10
nmcf
6535 / 5758 / 2622
Регистрация: 14.04.2014
Сообщений: 24,498
25.10.2016, 22:03 2
Ну значит он не динамический у тебя. Как объявлен, покажи.
Цитата Сообщение от Deimos_ Посмотреть сообщение
а тут на тебе еще и удалять его надо
Используй std::vector, его тоже не надо удалять.
1
Даценд
Модератор
Эксперт .NET
5144 / 4377 / 2827
Регистрация: 20.04.2015
Сообщений: 7,880
25.10.2016, 22:03 3
Deimos_,
Достаточно
C++
1
delete[] myArray;
1
Deimos_
36 / 35 / 32
Регистрация: 24.11.2014
Сообщений: 324
25.10.2016, 22:05  [ТС] 4
C++
1
2
3
cout << "Введите размерность массива : "; cin >> size;
        int *myArray = new int (size);
        //memset (myArray, 0, size * sizeof (int));
Вот так обьявлен
0
25.10.2016, 22:05
Даценд
Модератор
Эксперт .NET
5144 / 4377 / 2827
Регистрация: 20.04.2015
Сообщений: 7,880
25.10.2016, 22:06 5
Лучший ответ Сообщение было отмечено Deimos_ как решение

Решение

Цитата Сообщение от Deimos_ Посмотреть сообщение
Я хочу что бы при каждом запуске он заполнялся по новому
Перед заполнением добавьте
C++
1
srand(time(0));
и скобки квадратные нужны:
C++
1
int* myArray = new int[size];
1
Deimos_
36 / 35 / 32
Регистрация: 24.11.2014
Сообщений: 324
25.10.2016, 22:09  [ТС] 6
А если я хочу тупо удалить как вы показали Доцент то он у меня ошибку выводит
http://b1.is.pp.ru/d/deimos_092/1/50678171pAd.jpg
0
GbaLog-
Любитель чаепитий
3203 / 1504 / 472
Регистрация: 24.08.2014
Сообщений: 5,274
Записей в блоге: 1
Завершенные тесты: 2
25.10.2016, 22:09 7
Цитата Сообщение от Deimos_ Посмотреть сообщение
а тут на тебе еще и удалять его надо
Вообще, как же так-то? Этот Страуструп вообще думал о программистах, которые будут писать на этом языке?
Офигеть, после выделения памяти нужно её ещё и освободить! Кошмар!
1
nmcf
6535 / 5758 / 2622
Регистрация: 14.04.2014
Сообщений: 24,498
25.10.2016, 22:10 8
Цитата Сообщение от Deimos_ Посмотреть сообщение
Вот так обьявлен
Скобки почему круглые? Это 1 элемент, а не массив.
1
Даценд
Модератор
Эксперт .NET
5144 / 4377 / 2827
Регистрация: 20.04.2015
Сообщений: 7,880
25.10.2016, 22:11 9
Цитата Сообщение от Deimos_ Посмотреть сообщение
он у меня ошибку выводит
см. 2-ю часть сообщения #5
1
Deimos_
36 / 35 / 32
Регистрация: 24.11.2014
Сообщений: 324
25.10.2016, 22:19  [ТС] 10
Цитата Сообщение от nmcf Посмотреть сообщение
Скобки почему круглые? Это 1 элемент, а не массив.
Изначально делал квадратные потом начал гуглить про эту ошибку и какой то умник написал круглые скобки вот я и взял их, думал может в С++ круглые идут.

Добавлено через 4 минуты
Всем спасибо отлегло, особенно за srand(time(0)); сейчас прочту что он делает.

Добавлено через 2 минуты
.... MSDN ....алгоритм генерации псевдо-случайных чисел будет генерировать ту же самую последовательность чисел.
как все сложно с С++ все очищать надо!
0
GbaLog-
Любитель чаепитий
3203 / 1504 / 472
Регистрация: 24.08.2014
Сообщений: 5,274
Записей в блоге: 1
Завершенные тесты: 2
25.10.2016, 22:22 11
Цитата Сообщение от Deimos_ Посмотреть сообщение
как все сложно с С++ все очищать надо!
Но Вы же сами выбираете сложные пути:
Цитата Сообщение от Deimos_ Посмотреть сообщение
Выбирай самый сложный путь на нём ты не встретиш конкурентов.
Кстати, там орфографическая ошибка.
1
25.10.2016, 22:22
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2016, 22:22

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

Некорректный вывод одномерного динамического массива
хай гайс написал на кьюти сортировщик действительных чисел массива по убыванию. с положительными...

Алгоритм (псевдокод) одномерного динамического массива
Суть проблемы такова: Задан массив – А(10). Получить из него массив В, состоящий из элементов...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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