分段错误(核心转储)C++,因为我使用了大量内存

Segmentation fault (core dumped) C++ as I use a lot of memory

在 C++ 中,我使用我的 'user' class,我的代码只有以下 3 行:

    cout<<"size of user = "<<sizeof(user)<<endl;    //prints 160
    cout<<"size of all users = "<<NUM_OF_USERS*sizeof(user)<<endl;  

    user users[NUM_OF_USERS];  //creates an array of users of size NUM_OF_USERS.

当 NUM_OF_USERS 只有 10,000 时,它工作正常(甚至我的所有程序都工作正常)。但是当我将它增加到 1000,000 时,它会出现以下错误(仅针对这 3 行代码)。

Segmentation fault (core dumped)

所以,没有其他问题(没有指针或任何东西)。问题是这个 class 的这么多对象没有内存(需要 16,000,000 字节 = 16MB)。

我使用的是一台内存很大的 UNIX 机器,所以我认为 16 MB 并不多。那么,如何增加分配给这个特定进程的内存?

数据分配在堆栈上。堆栈的大小有限,无法调整大小。使用 std::vectornew[].

在堆上分配如此大的块