| 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. Причина: Добавление |
|
|