使用指针VS而不使用指针的内存分配

-3 c++ memory pointers

在C++中,以下两个代码之间的内存使用方面有什么不同吗?

int *val = new int(5);
Run Code Online (Sandbox Code Playgroud)

int val = 5;
Run Code Online (Sandbox Code Playgroud)

kmd*_*eko 5

是的,您的第一个示例至少需要sizeof(int*)(在自动存储中)+ sizeof(int)(在动态存储中).内存管理也可能存在开销.

您的第二个示例仅要求sizeof(int)可能最终完全省略(通过优化),具体取决于其使用方式.