|
1 / 1 / 0
Регистрация: 08.11.2017
Сообщений: 17
|
||||||
Ошибка в коде при работе с динамической памятью04.12.2017, 15:23. Показов 950. Ответов 11
Метки нет (Все метки)
Не могу понят что не так ?
При вводе в динамический массив А последовательность "61 3 2 0 -2 -25 -61 -70" программа крашится через раз. Или же это происходит при реализации других действий: создание массива В, сортировка масиввов ....Когда вывожу на экран то, что лежит в этих массивах, 1 из элементов выводится как очень огромное число, либо очень маленькое... что , конечно, не верно...Как исправить ? Вот код
0
|
||||||
| 04.12.2017, 15:23 | |
|
Ответы с готовыми решениями:
11
Управление динамической памятью при работе с классами Ошибка при работе с динамической памятью - 'Invalid pointer operatoion'
|
|
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
|
|
| 04.12.2017, 16:43 | |
|
Либо память не выделяете, либо индекс выходит за границы. Посмотрите отладчиком.
0
|
|
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
|
||||||
| 04.12.2017, 23:43 | ||||||
|
Здесь, и в других местах кода (начиная с main()):
N байт выделяется, а не под N int (как нужно).А это зачем? Что характерно, в realloc() ты правильно пишешь:
1
|
||||||
|
1 / 1 / 0
Регистрация: 08.11.2017
Сообщений: 17
|
|
| 05.12.2017, 08:24 [ТС] | |
|
Т.е. получается,что я выделяю память не для каждого элемента, а просто одну ячейку размером n байт ?
Int *new_B = (int*)malloc(n) realloc(new_B, sizeof(int)*(index_new_B)); А в этом коде я выделяю память размером для index_new_B элементов азмером int ? Получается что, происходило переполнение и памяти просто напросто не хватало для храннения элементов. А связано с тем, что я выделял память для каждого элемента. Я правильно рассуждаю ?
0
|
|
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
|
|||
| 05.12.2017, 09:05 | |||
|
Добавлено через 2 минуты В С++, для выделения памяти в куче (под блок данных), есть new[], а лучше использовать std::vector.
0
|
|||
|
1 / 1 / 0
Регистрация: 08.11.2017
Сообщений: 17
|
|
| 05.12.2017, 17:30 [ТС] | |
|
Спасибо ! Проблема решена !
0
|
|
|
1 / 1 / 0
Регистрация: 08.11.2017
Сообщений: 17
|
||||||
| 07.12.2017, 19:15 [ТС] | ||||||
|
Все равно выдает в некоторых случаях не правильные ответы
Если создать массив А из 3 элементов 61 34 56 и создать массив В, то привыводе массива В - мы увидим неправильный результат - очень большое число...
0
|
||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 07.12.2017, 19:33 | |
|
Почему не учитываешь результат realloc()? Указатель может отличаться.
0
|
|
|
1 / 1 / 0
Регистрация: 08.11.2017
Сообщений: 17
|
||||||
| 07.12.2017, 19:45 [ТС] | ||||||
Вот так ?
0
|
||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 07.12.2017, 19:46 | |
|
Возвращаемое значение.
0
|
|
|
1 / 1 / 0
Регистрация: 08.11.2017
Сообщений: 17
|
||||||
| 07.12.2017, 20:14 [ТС] | ||||||
0
|
||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 07.12.2017, 20:41 | |
|
Так. Только зачем ты два раза с условием это делаешь?
0
|
|
| 07.12.2017, 20:41 | |
|
Помогаю со студенческими работами здесь
12
Утечки при работе с динамической памятью
Ошибка при работе с памятью Ошибка при работе с памятью Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Рецензия / Мнение
Это мой обзор планшета X220 с точки зрения школьника.
Недавно я решила попытаться уменьшить свой. . .
|
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
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|