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 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
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

 

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