Есть ли способ получить доступ к адресу памяти вручную без использования указателей или ссылок? Допустим, я знаю, что целое число хранится по адресу 0x28fed8
, и я хочу распечатать эти данные. Я пробовал std::cout << (int*)0x28fed8
, но он просто выводит 0x28fed8
. Также он работает, когда я назначаю адрес указателю, подобному этому int* w1= (int*)0x28fed8;
для целого числа, но дает странный результат для переменной типа double (2.22064e-313)
#include <iostream>
int main(){
int a=10;
int* w1= (int*)0x28fed8;
double b=100.578;
double* w2= (double*)0x28fed0;
std::cout << &a << std::endl; // output 0x28fed8
std::cout << *w1 << std::endl; // output 10
std::cout << (int*)0x28fed8 << std::endl; // output 0x28fed8
std::cout << &b << std::endl; // output 0x28fed0
std::cout << *w2 << std::endl; // output 2.22064e-313
return 0;
}
Конечно, результаты были точными, когда я его тестировал - он может давать разные результаты, когда кто-то пытается скомпилировать этот код.
0x28fed8
? - person David C. Rankin   schedule 02.08.20140x28fed0
действительно является адресом двойногоb
? - person vsoftco   schedule 02.08.2014