创建对象时出现分段错误

时间:2016-01-31 18:07:21

标签: c++ segmentation-fault

编译代码崩溃后出现分段错误。通过调试,我已经发现在对象创建期间发生了分段错误:

PriorityQueue_1 priorityQueueYoungTableau;

这是PriorityQueue_1.cpp代码:

PriorityQueue_1.cpp

这是PriorityQueue_1.h代码:

PriorityQueue_1.h

这是Constants.h代码:

#ifndef PRIORITYQUEUES_CONSTANTS_H
#define PRIORITYQUEUES_CONSTANTS_H

#include <limits.h>

const int MAX_SIZE = 25000;
const int INFINITY = INT_MAX;

#endif //PRIORITYQUEUES_CONSTANTS_H

我在Xubuntu 15.10上使用Clion 1.2.4

我真的无法弄清楚发生了什么。 请帮我。谢谢。

1 个答案:

答案 0 :(得分:0)

PriorityQueue_1.h中,您使用固定大小的数组:int table_[MAX_SIZE][MAX_SIZE];

您还有MAX_SIZE=25000;

int table_的{​​{1}}是一个很大的东西。假设您的25000x25000为4个字节,则一个int需要2.32 Gb。

因此,当您创建一个table_对象时,您将分配2.32 Gb。 可能是你内存不足。

考虑动态内存分配,只存储您当前需要的部分。