У меня вибивает ошибку 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. Если наборот, то будет на хватать памяти! И призведет к ошибке сегментации.
Ошибка сегментации - это ошибка определенного типа, вызванная доступом к памяти, которая «не принадлежит вам». Это вспомогательный механизм, который не дает вам повредить память и внести трудно поддающиеся отладке ошибки памяти.