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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Циклический сдвиг массива http://www.cyberforum.ru/cpp-beginners/thread172507.html
Напишите программу, которая вводит с клавиатуры непустой массив целых чисел, циклический сдвигает элементы массива вправо на к позиции, и печатает результат. Цикличность означает, что последний элемент массива становится самым первым его элементом.( с библиотекой iostream)
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 <iostream> using namespace std; void drawOneLine(int nspaces, int nstars){ int i; for(i=0; i < nspaces; i++) putchar(' '); for(i=0; i < nstars; i++)
C++ Дано натуральное число n. Получить все его натуральные делители. Помогите пожалуйста. Нужно написать программу на языке Си. Дано натуральное число n. Получить все его натуральные делители. Заранее спасибо. подробнее

Показать сообщение отдельно
ganimed
0 / 0 / 0
Регистрация: 27.07.2010
Сообщений: 3
05.10.2010, 12:54     Обработка списков
Программа работы со списками написана, для малых списков (малых по объему занимаемой памяти) она работает адекватно: список строится, обрабатывается, удаляется. Если же размер списка больше некоторого значения, то программа по-прежнему его строит, но не может никаким образом обработать. Просмотр списка идет до определенного узла, после чего программа вылетает с ошибкой.

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

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

И того, имею бессмысленный вызов system("") после добавления каждого узла в список (из-за чего программа работает сууууущественно дольше) плюс еще один такой же вызов перед удалением всего списка.
Вопрос: почему размер списка влияет на адекватность его обработки программой? И каким образом добавление такого системного вызова помогает решить эту проблему?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru