Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 13.06.2011
Сообщений: 31

Указатели

05.10.2011, 16:34. Показов 1129. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
program Project1;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
type Tlist=^List;
List=record
inf:byte;
next:Tlist;
end;
var
head:Tlist;
cur:Tlist;
pred:Tlist;
i:integer;
 
begin
writeln('hi');
new(head);
head^.next:=nil;
head^.inf:=1;
pred:=head;
for i:=2 to 10 do
begin
new(cur);
cur^.next:=nil;
cur^.inf:=i;
pred^.next:=cur;
pred:=cur;
 
end;
while head<>nil do
begin
writeln('element ', head^.inf);
head:=head^.next;
end;
readln;
 
end.
в цикле while идет утечка памяти . знаю чтобы ее убрать нужно написать dispose(head/cur) но непойму в какое место.
и второй вопрос как переделать цикл фор чтобы добавление шло не с концы а наоборот чтобы добавление шло с лево направо
 Комментарий модератора 
Теги кода добавлены модератором. По правилам форума, код должен быть оформлен соответствующими тегами. Для оформления кода Delphi следует выделить этот код и на панели редактирования сообщения нажать кнопку: "DELPHI".

 Комментарий модератора 
Для вопросов по Delphi есть специальные разделы: Delphi, Delphi для начинающих.

 Комментарий модератора 
Если задача уже решена, следует сообщать об этом в своих темах. Потому что люди тратят время на решение.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.10.2011, 16:34
Ответы с готовыми решениями:

Указатели
Помогите, пожалуйста, с решением вот такой задачи. Реализовать программу эмулирующую работу с динамической памятью. 1. Определить...

Указатели
Написать программу используя указатели на переменные .Дана последовательность чисел, среди которых имеется один нуль. Вывести на печать все...

Указатели
Найти произведение отрицательных элементов массива A={a}, удовлетворяющих условию c&lt;=a&lt;=d. Использовать динамическое выделение...

1
 Аватар для Mawrat
13116 / 5897 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
05.10.2011, 18:33
Цитата Сообщение от CrazySPELS Посмотреть сообщение
Delphi
1
2
3
4
5
while head<>nil do
begin
writeln('element ', head^.inf);
head:=head^.next;
end;
В этом коде указатель на первый элемент списка "уезжает" в конец списка. Таким образом, указатель на первый элемент списка теряется. И список становится недоступным. Здесь надо сделать так, чтобы указатель на заголовок списка не использовался в качестве переменной цикла. В качестве переменной цикла можно применить переменную cur, например:
Delphi
1
2
3
4
5
6
Cur := Head;
while Cur <> nil do
begin
  writeln('element ', Cur^.inf);
  Cur := Cur^.next;
end;
И в конце всего кода программы надо добавить код для удаления всего списка из памяти. Это решит проблему с утечкой памяти. В этом коде уже можно изменять переменную Head внутри цикла. В конце цикла переменная Head будет содержать пустой указатель (= nil):
Delphi
1
2
3
4
5
6
7
while Head <> nil do
begin
  Cur := Head;
  Head := Head^.Next;
  Dispose(Cur);
end;
Writeln('Список удалён из памяти.');
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.10.2011, 18:33
Помогаю со студенческими работами здесь

Указатели
Ребят, помогите плиз разобраться с задачкой) В список из 3 книг в ДРП(динамически распределяемой памяти) вставить еще одну.

Указатели, матрица
Дана матрица А(n,m). Поменять местами первую и последнюю строку а каждый элемент этих строк увеличить в 2 раза! Задача должна быть решана...

Динамические указатели
Найти, сколько положительных, отрицательных и нулевых элементов в массиве A={a} удовлетворяют условию c&lt;=a&lt;=d. Использовать...

Указатели - Проверить)
Всем здраствуйте! В общем вот задачка - По трем известным вершинам координат (x1,y1), (x2,y2), (x3,y3) прямоугольника найти четвертую....

Типизированные указатели
помогите, пожалуйста, с решением задачи по динамическим структурам. вот что у меня получилось: uses crt; type rtrre=^real; ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru