What is the main aim of accessing data via a pointer address using reinterpret_cast. Is it faster, if so, how exactly?
Below a program, which prints same struct data via . operator and via pointer(reinterpret cast).
#include <iostream>
using namespace std;
struct values{
int one;
int two;
char three;
int four;
};
int main()
{
values v { 8, 5, 'k', 653};
// access via . (or ->) operator
cout << v.one << endl;
cout << v.two << endl;
cout << v.three << endl;
cout << v.four << endl;
//via pointer access - how can this be beneficial?
values* vPtr = &v;
int* intPtr = reinterpret_cast<int*>(vPtr);
cout << *intPtr << endl;
intPtr++;
cout << *intPtr << endl;
intPtr++;
char* charPtr = reinterpret_cast<char*>(intPtr);
cout << *charPtr << endl;
charPtr += 4;
int* intPtr2 = reinterpret_cast<int*>(charPtr);
cout << *intPtr2<< endl;
return 0;
}