小编Eri*_*ric的帖子

const_cast 会浪费额外的内存吗?

我们先看一下例子。

#include <iostream>
int main()
{
    const int constant = 1;
    const int* const_p = &constant;
    int* modifier = const_cast<int*>(const_p);
    *modifier = 100;
    std::cout << "constant: " << constant << ", *const_p=" << *const_p;
    //Output: constant: 1, *const_p=100
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我不知道它在内存架构上是如何实现的。看来编译器在堆栈中占用了额外的内存空间,以便我们可以跟踪值为constant的“原始” 1,以及堆栈中值为 的新内存位置100。是吗?那么,const_cast确实会消耗额外的内存,这是初学者可能没有想到的吗?

c++ casting

-3
推荐指数
1
解决办法
96
查看次数

标签 统计

c++ ×1

casting ×1