I have a code snippet getting adress of double
#include <iostream>
class Vector {
public:
Vector(int vecSize) :elem(new double[vecSize]), size(vecSize) {}
double& operator[](int i) { return elem[i]; }
int getSize() { return size; }
private:
double* elem;
int size;
};
int main()
{
const int vecSize = 6;
Vector myVec(vecSize);
for (int i = 0; i < vecSize; i++)
{
std::cout << &myVec[i] << '\n';
}
}
can get the adresses of double values
000002336DE2E030
000002336DE2E038
000002336DE2E040
000002336DE2E048
000002336DE2E050
000002336DE2E058
in this code snippet when trying to get adresses of char
values.
#include <iostream>
class Vector {
public:
Vector(int vecSize) :elem(new char[vecSize]), size(vecSize) {}
char& operator[](int i) { return elem[i]; }
int getSize() { return size; }
private:
char* elem;
int size;
};
int main()
{
const int vecSize = 6;
Vector myVec(vecSize);
for (int i = 0; i < vecSize; i++)
{
std::cout << &myVec[i] << '\n';
}
}
get result like this
══════²²²²
═════²²²²
════²²²²
═══²²²²
══²²²²
═²²²²
or something like this
══════²²²²D
═════²²²²D
════²²²²D
═══²²²²D
══²²²²D
═²²²²D
i try std::hex
to convert, did not work
std::cout << std::hex << &myVec[i] << '\n';
Want to know what is the reason behind this ?