imho.ws |
![]() |
![]() |
![]() |
# 1 |
Member
Регистрация: 05.08.2003
Сообщения: 290
![]() ![]() ![]() ![]() ![]() |
![]()
Ниче не понимаю!!
Всего навсего написал Код:
#include <stdio.h> int main() { int *p; *p = 3; return 0; } ![]() "Unhandled exception in example.exe: 0xC0000005 Access Violation" Что за фигня??. Почему невозможно присвоить содержимому адреса p значение 3??? ![]() Жду ответов.
__________________
Кончив одно дело, начинай другое. |
![]() |
![]() |
# 2 |
Member
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245
![]() ![]() |
Память нужно выделить под переменую. Обьявление указателя не значит что память выделилась сам собой. Вызови new или malloc.
Код:
int main() { int *p = new int; *p = 3; delete p; return 0; }
__________________
Best Regards |
![]() |
![]() |
# 3 |
Junior Member
Регистрация: 08.07.2004
Адрес: Воронеж
Сообщения: 115
![]() ![]() |
LN berf
Надо не так. Надо: int *p; p = (int *)3;//Вот так мы присваиваем значение указателю А если *p = 3;//Присваиваем значение ячейке памяти по адресу, который у тебя ещё не определён. С некоторыми адресами это пройдёт, а с некоторыми вызовет исключение. p - это сам указатель. *p - это значение по указателю.
__________________
Каждая мечта тебе дается вместе с силами, необходимыми для ее осуществления. Однако тебе, возможно, придется ради этого потрудиться. Ричард Бах Последний раз редактировалось ZETTOX; 27.09.2004 в 00:02. Причина: Добавление |
![]() |