c++ - 多精度库 zkcm 和 sizeof()

标签 c++ memory sizeof multiprecision zkcm

我正在使用多精度复数库 ( zkcm ) 并想使用 complex<double> 比较一些结果.

有一次我尝试使用 sizeof() 仔细检查变量的内存但是无论我将变量分配给多大的内存,我都会得到相同的答案(32);即无论我在 zkcm_set_default_prec() 中使用什么,下面的代码片段都会打印 32 :

zkcm_set_default_prec(128);
zkcm_class z;
cout << sizeof(z) << endl;

除了sizeof()还有别的方法吗?获取变量的内存大小?

最佳答案

我无法测试它,并且the documentation有点含糊,但有一个带有此签名的方法:

int zkcm class::get_prec ( void ) const;

是这样描述的:

Get the internal precision of the object, namely, the precision used for each part of "this" complex number

这可能会返回位数,它应该与使用的内存量成正比。当然,确切的关系是一个实现细节。该类本身可能只包含一个指向堆分配缓冲区的指针,其中包含数字和一些簿记信息。 sizeof 运算符(在 C++ 中)是完全静态的,即在编译时求值。

关于c++ - 多精度库 zkcm 和 sizeof(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21780873/

相关文章:

替换大型 Pandas 数据框中的 NaN 值时遇到 Python 内存错误

c - 是否有机器,其中 sizeof(char) != 1,或至少 CHAR_BIT > 8?

c - 从 -1 开始的循环不打印任何内容

c++ - visual-c++ win32 应用程序中的鼠标坐标?

c++ - 指针有问题

c++ - 构造函数被调用两次

R: 无法分配大于 x MB 的内存

python - 在 python 中读取 zip 文件时出现内存错误

c++ - Sizeof 和 Strlen

C++ 在新字符上删除 [];