小编Nav*_*een的帖子

C++为变量分配异常大的amout内存

我最近知道一个整数从内存中占用4个字节.

首先运行此代码,并测量内存使用情况:

int main()
{
   int *pointer;
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 花了144KB.

然后我修改了代码以分配1000个整数变量.

int main()
{
   int *pointer;

   for (int n=0; n < 1000; n++)
     { 
       pointer = new int ; 
     }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 然后花了(168-144 =)24KB,
    但假设1000个整数占用(4bytes x 1000 =)3.9KB.

然后我决定制作262,144个整数变量,它们应该消耗1MB的内存.

int main()
{
   int *pointer;

   for (int n=0; n < 262144; n++)
     { 
       pointer = new int ; 
     }
}
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,现在需要8MB

在此输入图像描述

内存使用量,指数增长各自的整数.
为什么会这样?

我在Kubuntu 13.04(amd64)
请给我一点解释.谢谢!

注意:sizeof(integer)退货4

c++ memory integer memory-management function-pointers

11
推荐指数
2
解决办法
1872
查看次数

如何在初始化时仅为特定对象继承和更改类?

在Java中,可以在初始化时为特定对象修改类结构:

Car ford = new Car(){   
    public float price;  
};
Run Code Online (Sandbox Code Playgroud)

因此,福特对象获得了一个名为price的新属性,而其他车则没有.

有没有一种方法可以在C++中获得类似的功能,而无需创建整个子类?

谢谢!

c++ inheritance class anonymous-class

4
推荐指数
1
解决办法
76
查看次数

如何通过索引访问QtQuick ListView中项目的属性?

可以说我想将列表视图中第二个Rectangle项的颜色更改为红色。
我该怎么做?

这是我的ListView:

ListView {  

        id: myList  
        model: myDataModel  

        delegate: Rectangle { 

               color: "green"
               height: 20
               width: 100

               onClicked{
                   //Do something
               }

        }
    }
Run Code Online (Sandbox Code Playgroud)

qml

1
推荐指数
1
解决办法
1479
查看次数

如何使用随机值填充 Postgre 列

这是在 postgre 关系中生成随机值行的一种方法。

random postgresql

1
推荐指数
1
解决办法
1815
查看次数