使用较大的升压矩阵时出现分段错误(内核转储)
Segmentation fault (core dumped) when using larger boost-matrices
如果我运行代码,则会发生错误:分段错误(核心转储)
如果我在头文件中减小 MatSamplesDimM 的尺寸(例如从 300000 到 30000),或者如果我只是在主文件中声明 Matrix1 而不是 Matrix2,则不存在问题。该问题与我运行代码的环境(日食或从终端)无关。
你有什么想法吗?非常感谢您的帮助!
奇怪的行为.cpp是我的主文件:
// System includes
#include <iostream>
#include <fstream> //fstream: Stream class to both read and write from/to files; for output
// Boost includes
#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/io.hpp>
#include <boost/assign/list_of.hpp>
#include <boost/math/distributions/normal.hpp> //to create normal distribution
#include <vector> // stl vector header
#include <boost/accumulators/accumulators.hpp>
#include <boost/accumulators/statistics/stats.hpp> //accumulator for mean, variance...
#include <boost/accumulators/statistics/mean.hpp>
#include <boost/bind/bind.hpp>
#include <boost/numeric/ublas/vector_proxy.hpp> // for using row()...
#include <boost/numeric/ublas/matrix_proxy.hpp> // for using row()...
#include <boost/numeric/ublas/vector_expression.hpp> // for using inner_prod
#include <boost/numeric/ublas/matrix_expression.hpp> // for using inner_prod, element_div
#include <boost/math/special_functions/gamma.hpp> // for Gamma function
#include "ParameterDeclaration.hpp"
using namespace std; // saves us typing std:: before vector
int main() {
std::cout << "Starting " << std::endl;
MatSamplesDimM Matrix1;
MatSamplesDimM Matrix2;
std::cout << "Finishing" << std::endl;
return 0;
}
和 ParameterDeclaration.hpp 我的头文件:
#ifndef parameter_
#define parameter_
#include <iostream>
namespace ublas = boost::numeric::ublas;
typedef ublas::bounded_matrix<double,300000,2> MatSamplesDimM;
#endif
尝试使用堆而不是堆栈。这意味着使用 new 分配矩阵。
相关文章:
- 在某些循环内使用vector.push_back时出现分段错误
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 如何解决gcc编译器优化导致的centos双编译器设置中的分段错误
- 当我的阵列太大时出现分段错误
- 分段错误当我试图运行程序时出错
- 在c++中初始化矩阵时出现分段错误(核心转储)
- 尝试使用集合函数时出现分段错误
- 我无法缩小此分段错误的原因
- g++的分段错误(在NaN上使用to_string两次时)
- 我是如何在这段代码中出现分段错误的
- 创建结构的数组时遇到分段错误
- 在c++中键入向量中的所有值后,得到分段错误(核心转储)
- 在 c++ 中实现 Trie 时出现分段错误
- 为什么 fstream 在打开带有格式的文件时会导致分段错误?
- 为什么我遇到分段错误?
- 动态类的分段错误(家庭作业问题)
- 分段错误 - 读取初始化指针的数组
- 如何摆脱C ++中的分段错误错误?
- 使用 CTYPE 时出现分段错误
- 为什么代码给出分段错误?