【发布时间】:2012-04-22 12:59:17
【问题描述】:
在尝试使用 C++ 和 reinterpret_cast 函数时,我尝试将 short 转换为 string 并得到一个 STATUS_ACCESS_VIOLATION 异常。
short s = 32767;
short* s2 = &s;
string* test4 = reinterpret_cast<string*>(s2);
cout << "reinterpret_cast: " << *test4 << endl;
据我了解,有人尝试使用一块内存,该内存未分配给我的应用程序进程。
我怎样才能发现这种被禁止的内存访问的尝试?我怎样才能只重新解释这件作品,它包含我的短值?
【问题讨论】:
-
尽可能使用
static_cast。
标签: c++ exception reinterpret-cast explicit-conversion