`int* p = new int` 是纯粹的 UB,具体什么值完全看编译器实现,居然能“确定”一个答案,很难评价。 在 clang 跟 gcc 最新版本上,gcc 确实清零了内存,但是 clang 没有:https://godbolt.org/z/nf653caex 相关的“语言律师”部分:https://stackoverflow.com/questions/7546620/operator-new-initializes-memory-to-zero