C 中向量的内存分配
在 C 中使用向量时,了解它们的内存分配特征至关重要。考虑以下语句:
- 向量 vect;
- 向量 *vect = 新向量;
- 向量; vect;
堆栈还是堆分配?
-
向量 vect: 这在堆栈上分配向量标头,而实际元素在堆上分配(自由存储)。
-
vector; *vect = new vector;: 所有内容,包括向量指针和元素,都在堆上分配。
-
vector; vect:向量分配在堆栈上,但其中的指针分配在堆上。这些指针的目标可能会根据使用情况而有所不同。
内部内存分配
对于向量和其他 STL 容器,内存分配如下:
- 容器头,存储大小、容量等元数据,通常分配在堆栈。
- 实际元素在自由存储上动态分配。
- 对于指针向量,指针本身也在自由存储上分配,而它们指向的对象可以有不同的值。内存分配机制。
以上是C 如何为向量分配内存:堆栈还是堆?的详细内容。更多信息请关注PHP中文网其他相关文章!