Rzutowanie za pomocą funkcji reinterpret_cast
Stronę tą wyświetlono już: 2165 razy
Funkcja szablonowa reinterpret_cast umożliwia rzutowanie wskaźnika jednego typu na drugi. Takie rzutowanie konieczne jest np. gdy dane są ściągane z internetu w postaci ciągu znaków char a przesyłane dane są innego typu np. typu prostego int lub typu strukturalnego. Oto przykład rzutowania tego typu:
W powyższym kodzie zmienna data zawiera dane w postaci tablicy znaków. Tablica ta składa się z 9-ciu elementów (tekst + znak 0 (czyli znacznik końca tekstu). Następnie zachodzi reinterpretacja wskaźnika char* na int*. W linijce 3 zmiana wartości stojącej za drugim indeksem uzyskanego wskaźnika powoduje zmianę zawartości zmiennej data. Ponieważ int ma rozmiar czterech bajtów to zmienna dataInt wskazuje na początek tablicy dwuelementowej typu int.
Wynik działania powyższego kodu będzie więc następujący:
Data 1701670771 Data 90 someZ4
Tytuł:
C++ Zbiór zadań z rozwiązaniami
Autor:
Tomasz Jaśniewski
Tytuł:
Mikrokontrolery dla hobbystów. Projekty DIY w języku C i C++
Autor:
Miguel Angel Garcia-Ruiz, Pedro Cesar Santana Mancilla
Tytuł:
Architektura oprogramowania bez tajemnic. Wykorzystaj język C++ do tworzenia wydajnych aplikacji i systemów
Autor:
Adrian Ostrowski, Piotr Gaczkowski
Tytuł:
Wprowadzenie do C++
Autor:
Michał Matlak
Tytuł:
Opus magnum C++ 11. Programowanie w języku C++. Wydanie II poprawione (komplet)
Autor:
Jerzy Grębosz
Tytuł:
Programowanie wieloplatformowe z C++ i wxWidgets 3
Autor:
Bartosz W. Warzocha
Tytuł:
Język C++ i przetwarzanie współbieżne w akcji. Wydanie II
Autor:
Anthony Williams
Tytuł:
C++ dla bystrzaków. Wydanie VII
Autor:
Stephen R. Davis
Tytuł:
Tablice informatyczne. Podstawy C++
Autor:
Radosław Sokół
Tytuł:
Opus magnum C++11. Programowanie w języku C++ (komplet)
Autor:
Jerzy Grębosz