我可以使用 C++ 中的内置类型安全地 new[],然后强制转换指针,然后安全地删除[] 吗?
在我的代码中,我实际上具有以下内容: wchar_t* buffer = new wchar_t[size] // bonus irrelevant code here delete[] reinterpret_cast<char*>(…
以下代码是否调用 UB?
以下代码是否调用 UB ? int main(){ volatile int i = 0 volatile int* p = &i int j = ++i * *p } …
内存泄漏是“未定义的行为”吗? C++ 中的类问题?
事实证明,许多看似无辜的事情在 C++ 中都是未定义的行为。例如,一旦非空指针被删除,即使打印出该指针值也是未定义的行为。 现在内存泄漏肯定是很糟…
C++删除 - 它删除了我的对象,但我仍然可以访问数据?
我编写了一个简单、有效的俄罗斯方块游戏,其中每个块都作为 singleblock 类的实例。 class SingleBlock { public: SingleBlock(int, int) ~SingleBlo…
在 const 对象上间接调用非常量函数
给出以下代码: class foo foo* instance = NULL class foo { public: explicit foo(int j) : i(j) { instance = this } void inc() { ++i } private:…
为什么我不应该尝试使用“this”? “删除此”后的值?
在C++ FAQ 的这段中使用delete this<讨论了 /code> 构造。列出了 4 项限制。 限制 1 至 3 看起来相当合理。但为什么限制 4 是我“不能检查它、将…
关于 C 中联合的问题 - 存储为一种类型并读取为另一种类型 - 它是实现定义的吗?
我正在阅读 K&R 中关于 C 中的 union 的内容,据我了解,union 中的单个变量可以保存多种类型中的任何一种,如果某些内容存储为一种类型并提取为另…
有没有办法区分 GUID 和随机数?
在调试模糊的代码缺陷时,能够将 GUID 与随机数据区分开来非常有用。 在 Windows 上,生成的每个 GUID 都是版本 4,因此它的第三部分的前半字节为“4…
为什么在不返回值的情况下流出非 void 函数的末尾不会产生编译器错误?
自从我多年前意识到这默认情况下不会产生错误(至少在 GCC 中),我一直想知道为什么? 我知道您可以发出编译器标志来产生警告,但它不应该总是错误吗…
是否允许使用 const_cast 对 const 对象进行只读访问?
在 C++ 中,我有一个只需要对数组进行只读访问的函数,但被错误地声明为接收非常量指针: size_t countZeroes( int* array, size_t count ) { size_t …
您遇到的 C 语言常见的未定义/未指定行为有哪些?
Closed. This question needs to be more focused. It is not currently accepting answers. 想要改进这个问题?通过编辑这篇文章来更新问题,使其仅…