Как решить ошибку разрыва в C ++ для создания 2-мерной матрицы - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь создать матрицу размером 200 * 200 в c ++ с помощью Microsoft visual studio, и я получил ошибки прерывания. но код работает, когда размерность меньше 100 * 100

Сообщение, которое я получил на перерыв:

Необработанное исключение в 0x7539DDC2 в NAPL-Calculation.exe: Microsoft C ++ исключение: std :: bad_alloc в ячейке памяти 0x007BE934.

Есть ли идея решить эту проблему?

int main()
{
    int n,m;
    n=200;
    m=200;
    A=new double*[n*m];  
    for(i=0;i<n*m;i++)
        A[i]=new double[n*m];


return 0;
}

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Я думаю, что решение должно быть таким:

int m = 200, n = 200;
int **A;

A = new int*[m];
for(int i=0; i<m; i++){
    A[i] = new int[n];
}

...

for(int i=0; i<m; i++)
    delete [] A[i];
delete [] A;
0 голосов
/ 11 сентября 2018

Какие значения вы пытаетесь сохранить в своей матрице?

Я бы сказал:

int m = 200, n = 200;
int A[n][m] = {0};

for(int j=0; j<n; j++){
    for(int i=0; i<m; i++){
        A[j][i] = .....
    };
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...