jbu*_*jbu 0 c++ heap allocation new-operator
我是C++的新手.对于"新"系列来说,它究竟意味着什么?例如:
UnicodeStringList* tmp = new UnicodeStringList;
// where UnicodeStringList is typedef to std::list<UnicodeString>
Run Code Online (Sandbox Code Playgroud)
当你"新"某事时,你必须知道你需要它有多大,对吧?因此,当我使用赋值构造函数来复制对象时,计算机将如何知道应该在堆上分配多少内存?例如:
*tmp = another_string_list;
Run Code Online (Sandbox Code Playgroud)
另一个sun_string_list被复制到堆内存中新的UnicodeStringList中,但我最初从未指定堆内存应该有多大.并且编译器不知道another_string_list有多大,所以有多少内存进入堆?
我很困惑,希望我已经说明了我的问题,所以有人可能会理解我,但我不确定.
请帮忙
谢谢,
朱利安
std::list向元素添加元素时,a的大小不会改变.我将使用a,std::vector因为示例更简单,但同样的概念适用:a std::vector包含指向数组的指针,根据需要动态调整大小以包含元素.指向数组的指针的大小不会改变(它是一个指针的大小),即使它指向的数组发生了变化
| 归档时间: |
|
| 查看次数: |
319 次 |
| 最近记录: |