У меня вибивает ошибку Segmentation fault (core dumped)

У меня вибивает ошибку сегментации. Как мне ее убрать и как на следущий раз если будет похожая ситуация как их уберать и на что смотреть внимание?

Если что вот ссилка на проект https://onlinegdb.com/H1WvGtxDd

//Главний файл
#include <stdio.h>
#include "Header.h"
using namespace std;
#include <stdlib.h>
#include <iostream>




int main() {
    int row = 7;
    int col = 4;
    int** bijj = new int* [col];
    
    benef(bijj,row,col);
    
    del(bijj);
    
    
    
    return 0;
}

//Header.cpp
#include <iostream>
using namespace std;
#include <stdio.h>
#include "Header.h"




int n = 7; int m = 4;

int** arr = new int* [m];

void benef(int** arr, int n, int m) {

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

    }
    for (int i = 0; i < n; i++) {

        for (int j = 0; j < m; j++) {
            arr[i][j] = rand() % 100;
            cout << arr[i][j] << "\t";

        }
        cout << endl;
    }

    


    
}
void del(int **arr) {

    for (int i = 0; i < n; i++) {
        delete[]arr[i];
    }
    delete[] arr;
}


//Header.h

#pragma once
#ifndef HeaderH
#define HeaderH



void benef(int** arr, int n, int m);
void del(int **arr);



#endif // HeaderH





Ответы (1 шт):

Автор решения: ТарасПрогер

Попутали Вы немного...

int** bijj = new int* [row];

Там не столбцы, а row. Если наборот, то будет на хватать памяти! И призведет к ошибке сегментации.

Ошибка сегментации - это ошибка определенного типа, вызванная доступом к памяти, которая «не принадлежит вам». Это вспомогательный механизм, который не дает вам повредить память и внести трудно поддающиеся отладке ошибки памяти.

→ Ссылка