gpt4 book ai didi

c++ - 删除指针指向的结构中数据的正确用法

转载 作者:行者123 更新时间:2023-11-28 08:10:21 26 4
gpt4 key购买 nike

我正在尝试了解释放指向的内存的正确方法。在这种情况下,指针指向结构的新实例。示例如下所示

结构是这样的:

    struct MyData
{
unsigned short int MYID;
unsigned short int MYCMD;
};

定义如下。

    MyData* injdataRx;

myDataPtr = new MyData; // create new instance

...做一些事情,将值加载到指针指向的地方,即。字段。

现在,如果当我完成该结构并且我想确保释放指针指向的内容(分配的区域)时,我会这样做。

    delete (myDataPtr);

这是否会释放由“new”创建的内存,因为它知道因为 myDataPtr 是指向类型 MyData 的指针,所以它将释放 MyData 的大小?是这样吗?

感谢任何澄清这一点的帮助。

最佳答案

是的。基本上,当您调用 new 时,分配的字节数会记录在某处(这不是标准指定的,并且取决于实现)。无论如何,当您调用 delete 时,会引用这个字节数,这就是系统如何知道要释放多少字节,即使您没有告诉它。簿记是在幕后完成的。

关于c++ - 删除指针指向的结构中数据的正确用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9304169/

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