IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> адрес указателя, вызвать ошибку..
compiler
сообщение 27.05.2007 14:01
Сообщение #1


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Хотелось бы написать программку которая вызывала ошибку в распределении памяти...
для этого я хочу написать 3 проги . первая - читает число(в указатель), адрес указателя пишет в файл, ждет действия второй програмки(которая будет пытаться прочитать/изменить значения указателя) и печатает это же число.
первую програмку я то написал но с ошибками
var
p : ^integer;
ad: integer;
f :file of integer;
begin
Assign(f,'file.txt');
Rewrite(f);

New(p);
readln(p^);

ad:=Addr(p); //ошибка, можна конечно прать отдельно сигмент и сдвиг но это не то...
write(f, ad);

Close(f);

(*readln; read;*)
while IOResult = 0 //замена, пока файл не удален другой программой,
do {$I-} Reset(f); {$I+} //будем надеятся у нее это получится


writeln(p^);

readln;
read;
end.


заранее благодарен.

добавлено (вторая программа+в первой уничтожена одна переменная)
var
p : ^integer;
f :file of integer;
begin
Assign(f,'file.txt');
Reset(f);

New(p);
read(f, p);

Erase(f);
end.



Сообщение отредактировано: compiler - 27.05.2007 15:12


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 27.05.2007 17:37
Сообщение #2


Гость






Цитата(prog.pdf)
Appendix D

D.3 Delphi mode
...
5. The Objpas unit is loaded right after the system unit. One of the consequences of this is that
the type Integer is redefined as Longint.
...

D.5 ObjFPC mode
...
5. The Objpas unit is loaded right after the system unit. One of the consequences of this is that the type Integer is redefined as Longint.
...
Во всех остальных случаях размеры Integer и LongInt НЕ совпадают...
 К началу страницы 
+ Ответить 
compiler
сообщение 27.05.2007 17:45
Сообщение #3


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


размер Pointer, как я теперь понял 4 поэтому буду использовать LongInt...


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
compiler   адрес указателя   27.05.2007 14:01
volvo   ad:=Integer(Addr(p)); (только если ты уверен, что ...   27.05.2007 14:08
compiler   [code=pas]ad:=Integer(Addr(p));(только если ты уве...   27.05.2007 14:14
volvo   Что значит "все равно ошибка"? То, что я...   27.05.2007 14:23
compiler   Что значит "все равно ошибка"? прости, п...   27.05.2007 14:31
volvo   WriteLn(SizeOf(Integer)); { <--- Мне выдает 4 ...   27.05.2007 15:53
compiler   WriteLn(SizeOf(Integer)); { <--- Мне выдает 4 }...   27.05.2007 16:45
volvo   Ничего не надо спрашивать... Я и так тебе скажу: э...   27.05.2007 16:51
compiler   Ничего не надо спрашивать... Я и так тебе скажу: ...   27.05.2007 17:06
volvo   Не знаю, мне при {$mode ObjFPC} тоже дает Siz...   27.05.2007 17:14
compiler   Не знаю, мне при {$mode ObjFPC} тоже дает Siz...   27.05.2007 17:18
volvo   [b]Appendix D D.3 Delphi mode ... 5. The Objpas u...   27.05.2007 17:37
compiler   размер Pointer, как я теперь понял 4 поэтому буду ...   27.05.2007 17:45
compiler   а как присвоить адрес указателю? var p : ^longin...   27.05.2007 19:20
volvo   Ты можешь мне объяснить, ЧЕГО ты хочешь добиться??...   27.05.2007 21:48
compiler   Ты можешь мне объяснить, ЧЕГО ты хочешь добиться??...   28.05.2007 12:25
-compiler-   собственно подозрительный этот кусок,{$I-} w...   28.05.2007 13:08


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 10:05
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"