如何测试可用内存限制(C++)?

use*_*916 -1 c++ memory constructor allocation dynamic

我必须通过设置构造函数的值来检查PC的可用内存限制.应该动态分配内存.例:

  class matrix{

    int lines;
    int columns;

public:
    matrix(long lin, long col){
        lines=lin;
        columns=col;
       }
};
Run Code Online (Sandbox Code Playgroud)

如何检查哪些值(lin,col)是我记忆的极限?(长型只是一个例子).

///编辑:"通过引入增加的值(矩阵的维度)导致内存分配失败的情况"所以问题是:是否有任何可能性来检查哪些值是最后可以引入的?

Paw*_*arz 5

应该动态分配内存

您不需要测试可用内存 - operator new为您做这件事(除非它当然超载).如果operator new失败,它会抛出std::bad_alloc或返回0,具体取决于您调用的运算符的版本.

  • _"如果operator new失败,则返回0"_ - 仅当您调用运算符的no throw实现时,否则抛出`std :: bad_alloc` (5认同)