zapisanie wartość przy pomocy wskaźnika

0

Po uruchomieniu program się wysypuje.
Oto cały kod programu:

int *wart;
	wart=reinterpret_cast<int*>(5);
	*wart = 2313212;
	cout << wart;

CXX0030: Error: expression cannot be evaluated

Coś robie źle?

0

na ideone się kompiluje: http://ideone.com/MYqYW
to, że
piszesz sobie po pamięci jak Ci się podoba i dostajesz AV (Access Violation) to już inna sprawa.

EDIT: myślałem, że Ci się nie kompiluje :)

0

Zaalokuj pamięć jak człowiek, a nie jakąś piątkę przypisujesz.

0

int *wart;
//wart=reinterpret_cast<int*>(5);
wart = new int ;
*wart = 2313212;
cout << wart << ": "<< (*wart) << std::endl ;
delete wart ;
0

a skąd wiecie, że on w trybie chronionym pracuje? :D

0

chodziło mi o przetestowanie czy tak też się da, a wiec dalej nie wiem dlaczego w to miejsce o adresie 5 nie da się tego wpisać.

0

bo możesz pisać tylko i wyłącznie tam gdzie Ci system operacyjny pozwoli. Jak będziesz pisać system operacyjny to będziesz mógł sobie pisać gdzie chcesz, ale póki co musisz go spytać gdzie możesz pisać wywoująć malloc lub korzystając z operatora new

1 użytkowników online, w tym zalogowanych: 0, gości: 1