Привет, я довольно новичок в C++, и мне нужно динамически выделять двумерный массив. Нет ошибок, но во время выполнения, когда я поставил в порядок и первый ряд, то я получаю сообщение об ошибке выполнения: «Segmentation Fault» ... Вот код:Динамическое распределение двумерного массива C++
#include <iostream>
using namespace std;
double ** allocateDynamicArray(int &order){
double ** arr = new double *[order];
for(int i = 0;i < order; i++){
*arr = new double[order+1];
}
return arr;
}
void deallocateDynamicArray(double **arr, int order){
for(int i=0; i<order; i++){
delete [] arr[i];
}
delete [] arr;
}
void addAndPrintArray(double **arr, int order){
cout << "Zadejte prvky pole radu " << order << endl;
for(int i=0; i< order; i++){
for(int j=0; j< order+1; j++){
cout << "Pole[" << i << "][" << j << "]: ";
cin >> arr[i][j];
}
}
for(int i=0; i< order; i++){
for(int j=0; j< order+1; j++){
cout << arr[i][j] << " ";
if(arr[i][j] < 10 && arr[i][j] > -10){
cout << " ";
}
cout << endl;
}
}
}
int main()
{
int order;
cin >> order;
double **dynArray = allocateDynamicArray(order);
addAndPrintArray(dynArray, order);
deallocateDynamicArray(dynArray, order);
return 0;
}
Вы почти наверняка можете использовать 'vector>'. Гораздо менее сложно работать, поскольку нет головных болей выделения/освобождения. –
'* arr =' должно быть 'arr [i] =' – 0x499602D2
Да, но что, если я хочу использовать это? Мне просто нужно знать, что плохого в этом коде ... –