gpt4 book ai didi

c++ - C++中为一个用户定义的类分配多少内存

转载 作者:行者123 更新时间:2023-11-30 03:09:36 25 4
gpt4 key购买 nike

我知道某些数据类型对象有一定的缓冲区大小。例如。一个字符是 1 个字节。所以,在创建自定义类对象时,

  1. 分配了多少内存对象 a?
  2. 是分配的内存量如果创建对象则不同在堆栈,还是
  3. 是分配的内存量已修复,还是可以更改

创建用户定义的类实例:

Animal a; //stack memory
a.makeSound();

Animal *a = new Animal(); //heap memory
a->makeSound();

最佳答案

在这两种情况下,至少会分配 sizeof(Animal) 字节。

在堆栈分配的情况下,一些额外的内存可能用于对齐。在堆内存的情况下,一些额外的内存可能会用于存储堆服务数据。您可以通过更改类来影响确切的内存量 - 例如,对于堆分配,您可以为该类定义自定义 operator new 并使其分配您想要的内存量。

关于c++ - C++中为一个用户定义的类分配多少内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3988045/

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