在C++中,以下两个代码之间的内存使用方面有什么不同吗?
int *val = new int(5);
Run Code Online (Sandbox Code Playgroud)
和
int val = 5;
Run Code Online (Sandbox Code Playgroud)
是的,您的第一个示例至少需要sizeof(int*)(在自动存储中)+ sizeof(int)(在动态存储中).内存管理也可能存在开销.
您的第二个示例仅要求sizeof(int)可能最终完全省略(通过优化),具体取决于其使用方式.