分段故障(堆芯转储)C++;因为我使用了大量的内存 在C++中,我使用我的“用户”类,而我的代码只有以下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.
因此,没有其他问题(没有指针或任何东西)。问题是此类的大量对象没有内存(需要16000000字节=16MB)分段故障(堆芯转储)C++;因为我使用了大量的内存 在C++中,我使用我的“用户”类,而我的代码只有以下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.,c++,memory,segmentation-fault,coredump,C++,Memory,Segmentation Fault,Coredump,因此,没有其他问题(没有指针或任何东西)。问题是此类的大量对象没有内存(需要16000000字节=16MB) 我使用的是一台UNIX机器,它有相当大的内存,所以我认为16MB不是很多。那么,如何增加这个特定进程的内存呢?数据是在堆栈上分配的。堆栈大小有限,无法调整大小。使用std::vector或new[]在堆上分配如此大的块,数据在堆栈上分配。堆栈大小有限,无法调整大小。使用std::vector或new[]在堆上分配如此大的块,数据在堆栈上分配。堆栈大小有限,无法调整大小。使用std::ve
我使用的是一台UNIX机器,它有相当大的内存,所以我认为16MB不是很多。那么,如何增加这个特定进程的内存呢?数据是在堆栈上分配的。堆栈大小有限,无法调整大小。使用
std::vector
或new[]
在堆上分配如此大的块,数据在堆栈上分配。堆栈大小有限,无法调整大小。使用std::vector
或new[]
在堆上分配如此大的块,数据在堆栈上分配。堆栈大小有限,无法调整大小。使用std::vector
或new[]
在堆上分配如此大的块,数据在堆栈上分配。堆栈大小有限,无法调整大小。使用std::vector
或new[]
在堆上分配如此大的块,您正在堆栈上创建的数组的空间限制为几MB或更少。尝试使用std::vector用户(用户数)改为code>。您正在堆栈上创建的数组的空间限制为几MB或更少。尝试使用std::vector用户(用户数)改为code>。您正在堆栈上创建的数组的空间限制为几MB或更少。尝试使用std::vector用户(用户数)改为code>。您正在堆栈上创建的数组的空间限制为几MB或更少。尝试使用std::vector用户(用户数)代码>取而代之。谢谢!我把它分配到堆上,效果很好!将其更改为user*users=新用户[NUM_OF_users];非常感谢。我把它分配到堆上,效果很好!将其更改为user*users=新用户[NUM_OF_users];非常感谢。我把它分配到堆上,效果很好!将其更改为user*users=新用户[NUM_OF_users];非常感谢。我把它分配到堆上,效果很好!将其更改为user*users=新用户[NUM_OF_users];
Segmentation fault (core dumped)