A probably simple pointer questions...
can anyone tell me why this will work?
unsigned char* a;
double b= 45456464645.43564564564;
a= reinterpret_cast(&b);
double c= reinterpret_cast(*a);
so c at the end equal the exact value of b so this IS okay..
but why this time this can''t be done?
unsigned char* a;
char b[50]= "0123456789012345678901234567890123456789012345678";
a= reinterpret_cast(&b);
std::string c= reinterpret_cast(*a);
it do a 1st chance exception when a put value of a to c..?
by the way i''m using Visual Studio 6...
i''ve tried the same code in Borland C++ 5 and... well it seem to work can anyone explain me the problem??!?
A reinterpret_cast will do really odd things when trying to treat a character array as a std::string. Do you even know what reinterpret_cast does??
Don't listen to me. I've had too much coffee.
[edited by - sneftel on October 22, 2002 3:43:18 PM]
Don't listen to me. I've had too much coffee.
[edited by - sneftel on October 22, 2002 3:43:18 PM]
well i''wasn''t knowing there was danger doing this with char array & string... and how would you do this then? string or array?
and by the way Sneftel i know that reinterpret_cast is used to convert a pointer to another one by doing NO test if it''s possible, it simply do it, so doing this, you can cause a lot of problem if not used correctly..., this is what i know about it, fell free to correct me or add any comments on what it do
and by the way Sneftel i know that reinterpret_cast is used to convert a pointer to another one by doing NO test if it''s possible, it simply do it, so doing this, you can cause a lot of problem if not used correctly..., this is what i know about it, fell free to correct me or add any comments on what it do
Right. And treating a character array as a string is one of those things that causes problems.
If it worked well before, I would assume that Borland''s STL puts a pointer to the string as its first element (i.e. you got lucky). VC++ uses Dinkumware''s STL, which apparently does not.
You don''t need it anyway. Use the c_str() member function to get a pointer to a char array from a string.
Don''t listen to me. I''ve had too much coffee.
If it worked well before, I would assume that Borland''s STL puts a pointer to the string as its first element (i.e. you got lucky). VC++ uses Dinkumware''s STL, which apparently does not.
You don''t need it anyway. Use the c_str() member function to get a pointer to a char array from a string.
Don''t listen to me. I''ve had too much coffee.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement