假设我有以下 C++:
char *p = new char[cb];
SOME_STRUCT *pSS = (SOME_STRUCT *) p;
delete pSS;
根据 C++ 标准,这安全吗?我是否需要转换回 char*
然后使用 delete[]
?我知道它适用于大多数 C++ 编译器,因为它是普通数据,没有析构函数。能保证安全吗?
最佳答案
不能保证安全。这是 C++ FAQ lite 中的相关链接:
[16.13] 删除某些内置类型的数组(char
、int
等)时,我可以删除[]
吗? ?
http://www.parashift.com/c++-faq-lite/freestore-mgmt.html#faq-16.13
关于c++ - 通过不同类型的指针删除缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70880/