[英]Segmentation fault 11: while trying to input B[1] using cin
我在運行以下代碼時遇到問題。 這給了我一個運行時錯誤的分段錯誤。
#include <iostream>
using namespace std;
int main()
{
int n;
cout << "Enter n: ";
cin >> n;
float A[n][n], x[n], B[n], L[n][n], U[n][n], m[n][n], Aug[n][n + 1];
//Initializing matrix A,L,U
cout << "Enter A: \n";
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> A[i][j];
U[i][j] = A[i][j];
Aug[i][j] = A[i][j];
if (i == j) {
L[i][j] = 1;
}
else {
L[i][j] = 0;
}
}
}
//Initialising matrix B
cout << "Enter B: \n";
for (int i = 0; i < n; i++) {
cin >> B[i];
cout << "done" << i;
Aug[i][n] = B[i];
}
// ...
return 0;
}
輸入:
n = 2,A = {2,5,-3,-4},B = {0,0}
當我嘗試輸入B[1]
時會發生錯誤,所以done0被打印出來了,但done1沒有。 我只是無法弄清楚此錯誤的原因是什么,因為我看不到B[1]
無法訪問的任何原因。
您誤診了問題。 在for
循環結束之后,在未顯示給我們的代碼中( // ...
部分),發生了分段錯誤。 因為您的代碼在有機會刷新輸出緩沖區之前發生了錯誤,所以done1
不會被打印。 您的cout << "done" << i;
只是將東西放在輸出緩沖區中,就沒有東西可以沖洗緩沖區了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.