gpt4 book ai didi

C++ 类数组内存重新分配

转载 作者:太空宇宙 更新时间:2023-11-04 15:33:26 25 4
gpt4 key购买 nike

如果这个问题已经被问到,我很抱歉,但我不知道如何正确表达这个问题。所以我正在构建一个应用程序,它需要真正的内存效率,因为它在 Arduino Uno(2kbyte sram)上并且无法加载我需要的完整类对象数组,所以我决定分部分加载它。这基本上是我打算如何做的:

//declare class object array 
MyClass objects[10];
objects[0] = MyClass(*parameters for initializing*);
....
....
//Some code with objects
//now changing the objects
objects[0] = MyClass(*parameters for initializing*);

现在我的问题是,当我将 object[0] 更改为其他值时,是否会释放第一个 objects[0] 内存?据我所知,一个对象基本上是一个指向类字段的指针,当调用构造函数时,你会得到一个指向对象的新指针,所以我在代码中所做的就是改变对象 [0] 指向的内容但我不确定第一个指向 objects[0] 值的内存是否被释放。

最佳答案

As far as I understand an object is basically a pointer to the fields of the class and when calling a constructor you get a new pointer to a object[.]

不,在 C++ 中,一个对象是……好吧,一个实际的对象。 MyClass objects[10] 由十个 MyClass 并排组成,不涉及指针。

当你写 objects[0] = MyClass(/* ... */); 时,你正在构造一个新的 MyClass,然后分配(复制)它到数组中的第一个 MyClass,然后销毁它。同样,不涉及指针。

关于C++ 类数组内存重新分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42205528/

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