![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
-TarasBer- |
![]()
Сообщение
#1
|
Гость ![]() |
Скачал я себе ГНАТ (Gnat GPL(без исходников, поленился все ссылки тыкать) и Win32Ada.
Скопировал я для начала в редактор кода текст из Википедии:
Нажимаю "проверка синтаксиса". [2011-01-18 21:32:02] Could not determine the project for file: C:\ADA\projects\Test\test.gpr В общем, я так понял, я пока с какими-то настройками не разобрался, что делать? Заметил, что можно копировать сообщения об ошибках в буфер обмена. Ещё, что функцию можно свернуть. После каждого сворачивания/разворачивания в конец добавляется пустая строчка (баг, есть таблетка?). В настройках цвета не нашёл отдельного цвета для символов. Мне нравится, когда скобочки и запятые коричневые, а не чёрные. |
![]() ![]() |
TarasBer |
![]()
Сообщение
#2
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Новая проблема.
Я обнаружил утечку памяти у себя. Стал искать. Нашёл. Суть такая. Есть процедура P(T: out aInteger); Где-то внутри неё происходит T := new integer; И где-то дальше (внутри неё) какая-то проверка на корректность выражения и выброс исключения. Внешний код примерно такой: PF.T := null; P(PF.T); что-то сделать с PF.T И в деструкторе объекта PF прописано что-то типа if T /= null then Free(T); Так вот, если внутри P кинуть исключение, то значение переменной PF.T, передаваемой внутрь процедуры, останется старым (как будто её не трогали)! И к объекту, созданному внутри, нет доступа и он повиснет в памяти - утечка. То есть сопоставления внутренного out-параметра и внешней переменной как бы и нету, оно неявно копируется при корректном выходе из процедуры, а при некорректном внутренний объект висит. Что делать? -------------------- |
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 16:24 |