簡體   English   中英

分段錯誤11:嘗試使用cin輸入B [1]時

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM