Rzutowanie a wskaźniki

Odpowiedz Nowy wątek
2011-10-22 16:56
Doktorek
0

Witam,
mam taki kod:

 #include <iostream>
using namespace std;
int main()
{
   int *wsk_int1;
   int *wsk_int2;
   double *wsk_db;
   double *wsk_db1;
   int a = 50;
   double b = 20;

   wsk_int1 = &a;
   wsk_int2 = wsk_int1;
   cout << *wsk_int1 << "\t" <<*wsk_int2 << endl;

   //double:

   wsk_db = &b;
   wsk_db1 = wsk_db;
   cout << *wsk_db <<"\t" << *wsk_db1 << endl;
   wsk_db = reinterpret_cast<double*>(wsk_int1);
   cout << *wsk_db << endl;

}

Rzutuję tutaj wskaźnik wsk_db aby pokazywał na to samo co wsk_int1.
Rezultat, który przy tym dostaję to adres komórki pamięci. Ale ja chcę, żeby on po prostu pokazał mi tę liczbę ze zmiennej "a". Czy jest to możliwe? Jeżeli tak, to jak mam się do tego zabrać?

Pozostało 580 znaków

2011-10-22 17:06
0

Przyjmijmy, ze wartosc int ma 4 bajty a wartosc double 8 bajtow. Jezeli chcesz aby wskaznik ktory pokazuje co sie znajduje pod 8 bajtami ustawisz na obiekt ktory zajmuje 4 bajty to wskaznik double wezmie tak jakby dwa kolejne po sobie inty i pokaze cos co jest nieprawda. Jezeli chcesz uzyc rzutowania reinterpret_cast to rzutuj z void* na dany typ


Gdy się nie wie, co się robi, to dzieją się takie rzeczy, że się nie wie, co się dzieje ;-)

Pozostało 580 znaków

2011-10-22 18:41
Dr Zielu
0

Ok, dzieki wielkie, nie pomyślałem o tym mimo,że już miałem styczność :)

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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