我正在使用多精度复数库 ( 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/