![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Neon6868 |
![]() ![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 146 Пол: Мужской Репутация: ![]() ![]() ![]() |
Задание: В основной программе зарезервировать память в куче для размещения 100 вещественных значений.В вектор Х записать указатели на каждое значение. Сформировать случайные вещественные числа и записать их в динамическую память. Считая, что все элементы вектора Х отличны от NIL, описать процедуру uniquex(x), которая в векторе Х все элементы, ссылающиеся на равные числа, заменяет на первый из этих элементов.
Вот программа, но я не могу сделать эту процедуру.Подскажите кто-нибудь как её делать? Код Program DP; type preal=^real; vector=array[1..100] of preal; var x:vector; i:integer; procedure unique(x:vector); var i:integer; mx:real; a:array[1..100] of integer begin end; begin new(x); randomize; for i:=1 to 100 do begin new(x^[i]); x^[i]^:=random(100); write(' ',x^[i]^:5:2); end; dispose(x); end. |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Вот так?
Program DP;Только учти, что теперь у тебя будут проблемы при удалении массива... Перед Dispose надо бы освободить память, на которую указывает КАЖДЫЙ элемент массива X, однако у тебя несколько элементов указывают в одну область памяти... Первый из них - удалится нормально, на втором сразу получишь "неправильное действие с указателем"... Что будешь делать? |
Neon6868 |
![]() ![]()
Сообщение
#3
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 146 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Проблем не было, потому что я не стал делать:
for i := 1 to n do dispose(x^[i]); { <--- Вот это ...}Как только ты это добавишь, проблема сразу проявится... А если не добавлять - то... Однако, у тебя сейчас утечка памяти в программе ![]() begin и сравни 2 значения... Вот и memory leak... |
![]() ![]() |
![]() |
Текстовая версия | 2.07.2025 10:29 |