|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.04.2017, 17:10 | #1 |
Пользователь
Регистрация: 25.10.2016
Сообщений: 83
|
Найдите ошибку в программе
В файле содержится двумерный массив размерностью n × n. В новый файл вывести отсортированный массив.
Отсортировать диагонали, параллельные побочной по возрастанию с помощью сортировки вставками. Код:
|
11.04.2017, 17:22 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,493
|
Вы обращаетесь к удаленной (delete) памяти.
Там внизу есть "call stack" - откройте панельку и увидите на какой строке вашего кода это происходит. |
11.04.2017, 18:04 | #3 |
Пользователь
Регистрация: 25.10.2016
Сообщений: 83
|
Как это исправить?если убрать все удаления delete, ничего не меняется, и выдает те же ошибки
Код:
|
12.04.2017, 15:45 | #4 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
Начнем с этого:
Код:
Дальше, у вас тройной вложенный цикл, вы создаете 1 строку (внешний цикл), и потом в одну строку вчитываете весь файл (двойной вложеный цикл) и так повторяете вчитывание файла для каждой строки. Здесь двойной косяк 1. У вас не выделено столько памяти, что бы уместить весь файл. 2. После первого чтения файла, он "закончится" (т.к. последовательный), и если, вы хотите реально повторное чтение - его нада бы еще и "перемотать" в начало. Исправляется разделением циклов: Код:
...ах да, т.к. вы делаете a[i] = new int [n]; (т.е. выделяете МАССИВ), то и удалять нада массив (т.к. у вас двумерный, сначала каждую строку, как массив, потом массив строк) Код:
При не верном использовании (без [])ошибки не будет, но память утечет, в итоге, со временем, у вас тупо кончится оператива. Дальше, ifstream in("input.txt"); ofstream out("output.txt"); нужно перенести внутрь мейн. Потому что в вашем варианте - это глобальные переменные, они существуют до старта мейн, а закрываете вы их внутри мейн. Вобщем в большой программе это будет логический косяк, который будете искать год. дальше, Код:
Последний раз редактировалось alexzk; 12.04.2017 в 17:27. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Найдите ошибку в программе | ggjgj | Помощь студентам | 1 | 06.04.2017 15:56 |
Найдите ошибку в программе | АнтонКурышов | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 08.03.2016 16:44 |
Найдите ошибку в программе | Proger16 | Помощь студентам | 11 | 31.03.2013 16:34 |
НАЙДИТЕ ОШИБКУ В ПРОГРАММЕ | svetah | Помощь студентам | 8 | 03.12.2008 15:19 |