gpt4 book ai didi

c++ - 使用动态变量获取结构的大小?

转载 作者:搜寻专家 更新时间:2023-10-30 23:58:34 25 4
gpt4 key购买 nike

我有一个带有动态数组的结构:

struct test{int* arr;};

arr数组(arr=new int[100])分配空间后,使用sizeof返回4字节,也就是没有数组元素的结构的大小。是否有另一个像 sizeof 这样的内置函数可以返回大小,同时考虑动态分配的空间?还是我必须自己做?

+

我需要这个,因为我想更容易地将结构的内容保存到文件或从文件加载。

最佳答案

由于一个对象和它指向的其他对象,无法获得内存使用情况,因为它不是一个定义明确的概念。

  • 两个对象可能指向同一个arr block 。他们都负责消耗内存吗?
  • 如果你有一个包含指针的结构数组,那么递归呢?一个周期呢?
  • 也许arr 指向堆栈。这算不算占用内存?
  • malloc 可能会四舍五入请求的分配大小,或分配内部簿记结构。这样的影响算不算?

一些操作系统确实提供了一种工具来检索 malloc 的参数(或者有时是一个四舍五入的值,因为底层系统可能真的对原始参数没有用),但是在标准C 和 C++、POSIX 以及一般实践中,您有责任自己跟踪分配大小。

关于c++ - 使用动态变量获取结构的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20016297/

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