sta*_*tor 1 c++ memory-management
我有一个名为x的数组,其大小为6*sizeof(float).我知道声明:
float x[6];
Run Code Online (Sandbox Code Playgroud)
会在堆栈内存中为x分配6*sizeof(float).但是,如果我执行以下操作:
float *x; // in class definition
x = new float[6]; // in class constructor
delete [] x; // in class destructor
Run Code Online (Sandbox Code Playgroud)
我将为x分配6*sizeof(float)的动态内存.如果x的大小在类的生命周期中没有变化,就清洁度和速度的最佳实践而言(我隐约记得,如果不正确的话,堆栈内存操作比动态内存操作更快),我应该确定x是静态而不是动态分配的内存?提前致谢.
声明固定大小的数组肯定会更快.每个单独的动态分配都需要找到一个未占用的块,而且速度不是很快.
因此,如果你真的关心速度(有配置文件),规则是你不需要动态分配 - 不要使用它.如果您需要它 - 请考虑分配多少,因为重新分配也不是很快.
| 归档时间: |
|
| 查看次数: |
12631 次 |
| 最近记录: |