Rzutowanie a wskaźniki

Odpowiedz Nowy wątek
Doktorek
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

Rejestracja: 11 lat temu

Ostatnio: 5 lat temu

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

Dr Zielu
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

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