相关疑难解决方法(0)

了解c ++分配的内存量

我正在尝试更好地理解在c ++中分配在堆上的内存量.我写了一个小测试程序,除了填充一些2D矢量之外什么都没做.我在linux 64bit VM上运行它并使用valgrind的massif工具来分析内存.

我正在运行此测试的环境:在Win10上的VirtualBox中运行的Linux VM.VM配置:基本内存:5248MB,4CPU,上限为100%,磁盘类型VDI(动态分配存储).

c ++内存分析测试程序:

/**
 * g++ -std=c++11 test.cpp -o test.o
 */

#include <string>
#include <vector>
#include <iostream>

using namespace std;

int main(int argc, char **arg) {
    int n = stoi(arg[1]);
    vector<vector<int> > matrix1(n);
    vector<vector<int> > matrix2(n);
    vector<vector<int> > matrix3(n);
    vector<vector<int> > matrix4(n);
    vector<vector<int> > matrix5(n);
    vector<vector<int> > matrix6(n);
    vector<vector<int> > matrix7(n);
    vector<vector<int> > matrix8(n);

    for (int i=0; i<n; ++i) {
        for (int j=0; j<n; ++j) {
            matrix1[i].push_back(j);
        }
    }

    for (int i=0; i<n; ++i) { …
Run Code Online (Sandbox Code Playgroud)

c++ memory valgrind memory-management

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

Valgrind报告"线程#1中的brk段溢出"

我想知道这个消息意味着什么:

==18151== brk segment overflow in thread #1: can't grow to 0x4a26000
Run Code Online (Sandbox Code Playgroud)

请注意,代码运行正常,输出正确.我应该忽略这个消息吗?这是什么意思?

c++ valgrind

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

标签 统计

c++ ×2

valgrind ×2

memory ×1

memory-management ×1