Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Обработка списков - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Циклический сдвиг массива http://www.cyberforum.ru/cpp-beginners/thread172507.html
Напишите программу, которая вводит с клавиатуры непустой массив целых чисел, циклический сдвигает элементы массива вправо на к позиции, и печатает результат. Цикличность означает, что последний...
C++ Реализация операции сравнения для длинных чисел c++ Реализация операции сравнения для длинных чисел A>=B Используя "длинную арифметику" помогите пожста http://www.cyberforum.ru/cpp-beginners/thread172497.html
C++ Определить количество положительных элементов массива, предшествующих первому отрицательному
Определить количество положительных элементов массива, предшествующих первому отрицательному. Помогите пожалуйста решить данную задачу.
Дано число n. Проверить число n на простоту. C++
Помогите написать программу плизз ) Не знаю как и с чего начать... Я еще нуб в программировании )
C++ Вывод на экран ромба из звёзд! http://www.cyberforum.ru/cpp-beginners/thread172482.html
Народ! Нам задали написать программу, которая выводит ромб из звёздочек, но что-то у меня не совсем получилось! Помогите в четверг сдавать! #include "stdafx.h" #include <stdio.h> #include...
C++ Дано натуральное число n. Получить все его натуральные делители. Помогите пожалуйста. Нужно написать программу на языке Си. Дано натуральное число n. Получить все его натуральные делители. Заранее спасибо. подробнее

Показать сообщение отдельно
ganimed
0 / 0 / 0
Регистрация: 27.07.2010
Сообщений: 3

Обработка списков - C++

05.10.2010, 12:54. Просмотров 788. Ответов 2
Метки (Все метки)

Программа работы со списками написана, для малых списков (малых по объему занимаемой памяти) она работает адекватно: список строится, обрабатывается, удаляется. Если же размер списка больше некоторого значения, то программа по-прежнему его строит, но не может никаким образом обработать. Просмотр списка идет до определенного узла, после чего программа вылетает с ошибкой.

Решение было найдено случайно, и оно мне непонятно. Если при добавлении узла в список после всех основных действий добавить пустой системный вызов (system("")), то все манипуляции со списком любого размера (ну как любого... любого из тех, для которых программа не работала раньше) проходят без проблем. "Странно, -- подумал я. -- Ну бог с ним, главное -- работает!"

Но не тут то было... В процессе дальнейшей работы над программой структура узла списка слегка поменялась, изменился алгоритм обработки и немного расширился набор данных, заносимых в список (это, к слову, записи из системного журнала). Проблема неожиданно вернулась, но уже в иной форме: список строится, обрабатывается, НО не удаляется. И каково же решение? Конечно, дописать пустой системный вызов... Но куда, в процедуру удаления после каждого цикла? Нет! Всего лишь перед вызовом самой процедуры, и этого хватит...

И того, имею бессмысленный вызов system("") после добавления каждого узла в список (из-за чего программа работает сууууущественно дольше) плюс еще один такой же вызов перед удалением всего списка.
Вопрос: почему размер списка влияет на адекватность его обработки программой? И каким образом добавление такого системного вызова помогает решить эту проблему?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru