Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在释放 const 数据的内存时,为什么我需要 const_cast 它。如果我忽略它会是什么结果。
你没有。这是完全有效的,符合标准的代码:
int const * const a = new int(42); delete a;
听起来您正在使用std::freefrom<cstdlib>来执行此操作,签名是
std::free
<cstdlib>
void free(void *);
在这种情况下,从int const * constto的隐式转换void *失败,因为您只能隐式 const-cast,而不是 const 。无论如何,您都想要 C++ 的第一个版本。
int const * const
void *