Я новичок в программировании, и я пытаюсь понять двумерный массив. Я написал этот код, чтобы просто проверить свой код, чтобы убедиться, что он работает или нет. к сожалению, я получаю ошибку сегментации. Я знаю, это означает, что что-то, что я написал, нечитаемо для компилятора, но я не знаю, что это такое. потому что все кажется мне прекрасным.Ошибка сегментации двухмерного массива
#include<iostream>
using namespace std;
int main(){
int col, row,i;
int **array;
cout << "How many rows?\n";
cin >> row;
cout << "How many colomns\n";
cin >> col;
cout << "!!!!!!!!!!!!";
array = new int*[row];
for (int i = 0;i<row;i++){
array[i] = new int[col];
}
cout << "!!!!!!!!!!!!";
for(i=0; i<row; i++){
int x=1;
array[0][i]= x;;
x++;
}
cout << "!!!!!!!!!!!!";
cout << array[row][col];
for(i=0; i<row; i++){
delete [] array[i];
delete [] array;
}
return 0;
}
ошибка является: " Сколько строк Сколько colomns вина Сегментация (ядро сбрасывали) ?"
'соиЬ << массив [строка] [Col];' вне диапазона. 'array [row-1] [col-1]' настолько глубок, насколько вы можете идти. – WhozCraig
x ++; ничего не делает; x выходит за пределы области действия в конце каждой итерации цикла и воссоздается в начале следующей итерации. – mjwach
В наши дни мы не используем указатели и массивы, а также новые и низкоуровневые на C++. Есть более здоровые альтернативы, такие как std :: vector и std :: shared_ptr. –