gpt4 book ai didi

C++:struct 和 new 关键字

转载 作者:可可西里 更新时间:2023-11-01 15:41:33 25 4
gpt4 key购买 nike

我是 C++ 的初学者,我有以下代码:

struct Airline {
string Name;
int diameter;
int weight;
};

Airline* myPlane = new Airline;

我的问题是,如果我没记错的话,当我调用 new 方法时,它会分配内存。 PC 如何知道要分配多少内存,特别是考虑到其中有一个字符串类型?

谢谢

最佳答案

std::string 对象是固定大小的;它包含一个指向实际字符缓冲区的指针及其长度。 std::string 的定义看起来像

class string
{
char *buffer;
size_t nchars;

public:
// interface
};

因此您的 Airline 对象也具有固定大小。

现在,new 不仅分配;它还会初始化您的对象,包括 std::string,这意味着它可能会将 char 指针设置为 0,因为该字符串为空。

关于C++:struct 和 new 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9569604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com