问题描述
我正在做一个简单的测试,以数字的二进制表示形式计算1的数量:
int x;
while (cin >> x) {
bitset<32> xBitmap = {0};
xBitmap = static_cast<bitset<32>>(x);
std::cout << xBitmap.count() << std::endl;
}
上面的代码创建了正确的结果,但是当我使用一个指向位集的指针时,会发生意外情况:
bitset<32>* xBitmap = nullptr;
xBitmap = static_cast<bitset<32>*>((void*)&x);
std::cout << xBitmap->count() << std::endl;
此代码创建随机结果,每次使用“ count()”都会创建不同的结果。我猜这是内存泄漏吗?但是为什么会导致内存泄漏呢?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)