信号:分段错误 (11) 信号代码:权限无效 (2)
Signal: Segmentation fault (11) Signal code: Invalid permissions (2)
>我正在创建一个秩为 0 的 2D 向量。访问矢量时,我收到以下错误"信号:分段错误 (11( 信号代码:权限无效 (2("。
我尝试使用 malloc 创建动态 2d 矩阵,但错误仍然相同。
以下是代码片段 -
#include <iostream>
#include <vector>
#include <climits>
#include <mpi.h>
using namespace std;
int main(int argc, char **argv){
int num_procs, rank;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &num_procs);
int n1,n2;
int nodes,edges,source;
//int **matrix;
vector<vector<uint32_t>> matrix;
//take input
if(rank==0){
cin>>nodes;
cin>>edges;
cin>>source;
//matrix = (int **)malloc(nodes*nodes*sizeof(int));
//malloc2D(matrix,nodes,nodes);
matrix.resize(nodes,vector<uint32_t>(nodes,0));
cout<<"doing initialization"<<endl;
fflush(stdout);
for(int i=0;i<nodes;i++)
for(int j=0;i<nodes;j++){
//segmentation fault occurs here
matrix[i][j] = INT_MAX;
}
cout<<"done initialization"<<endl;
for(int i=0;i<edges;i++){
cin>>n1;
cin>>n2;
matrix[n1][n2] = 1;
matrix[n2][n1] = 1;
}
}
// rest of the code
}
我正在调整具有大小节点*节点的矢量大小。我不知道为什么会发生听障。
以下是错误片段-
doing initialization
[osboxes:02930] *** Process received signal ***
[osboxes:02930] Signal: Segmentation fault (11)
[osboxes:02930] Signal code: Invalid permissions (2)
[osboxes:02930] Failing at address: 0x7fb140021000
[osboxes:02930] [ 0] /lib/x86_64-linux-gnu/libc.so.6(+0x3ef20)[0x7fb1477c8f20]
[osboxes:02930] [ 1] q-3(+0xbe09)[0x561813124e09]
[osboxes:02930] [ 2] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0x7fb1477abb97]
[osboxes:02930] [ 3] q-3(+0xb9fa)[0x5618131249fa]
[osboxes:02930] *** End of error message ***
请帮忙!
内部循环for(int j=0;i<nodes;j++){
中的错误条件。必须for(int j=0;j<nodes;j++){
相关文章:
- Qt VTK交互风格的信号到小部件
- Openssl 1.1.1d无效使用不完整的类型"struct dsa_st"
- 无法访问嵌套类.类的使用无效
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- 如何在没有信号的情况下从C++执行QML插槽
- 线程之间的布尔停止信号
- 如果用户输入无效,如何使用字符串变量-C++重复输入命令
- 如何在信号处理程序和普通函数中对全局变量进行互斥读写操作
- 如何解决错误:SCIP C++中的 SCIP 阶段无效 <10>
- 在没有参数列表的情况下使用模板名称"Event"无效,模板问题
- FFMPEG配置文件级别id大小无效
- 错误:从"int"到枚举c++的转换无效
- 当用户在qtablewidget中输入单元格时,如何获得信号?C++
- 如何修复此错误:className::className的无效使用
- 有可能在信号处理程序中设置promise吗
- 信号:分段错误 (11) 信号代码:权限无效 (2)
- C++ QTextDocument::contentChange() 信号提供无效的输入数据
- 发布信号量返回错误 6(无效句柄)
- 在Linux上编译简单信号代码时,从void*到void (*) int的无效转换错误