From 3be291f00a51fb28c3177677e2f6be79e2332730 Mon Sep 17 00:00:00 2001 From: PioDer Date: Mon, 17 Oct 2016 23:56:39 +0200 Subject: [PATCH] alokacja pamieci + drobne pierdoly --- DergunPiotr-WaskoDominik/zad1/macierz_omp.cpp | 48 ++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/DergunPiotr-WaskoDominik/zad1/macierz_omp.cpp b/DergunPiotr-WaskoDominik/zad1/macierz_omp.cpp index 5ffca54..7d67487 100644 --- a/DergunPiotr-WaskoDominik/zad1/macierz_omp.cpp +++ b/DergunPiotr-WaskoDominik/zad1/macierz_omp.cpp @@ -1,15 +1,61 @@ #include #include +#include using namespace std; +void array_alloc(double **arr, long arrsize) +{ + try + { + arr = new double* [arrsize]; + arr[0] = new double [arrsize*arrsize]; + + for(long i = 1; i < arrsize; i++) + arr[i] = arr[i-1] + arrsize; + } + catch (bad_alloc& ex) + { + cerr << "Could not allocate memory for array" << endl; + exit(1); + } +} + +void array_destroy(double **arr) +{ + delete [] arr[0]; + delete [] arr; +} + int main(int argc, char *argv[]) { + double **A=NULL;//, **B=NULL, **C=NULL; + long rozmiar=0; + char *endptr; + if (argc < 3) { cerr << "Usage: " << argv[0] << " " << endl; exit(1); } - cout << argv[argc-1]; + + rozmiar = strtol(argv[2], &endptr, 10); + + if (*endptr) + { + cerr << "Invalid array size format" << endl; + exit(1); + } + + if (rozmiar <= 0) + { + cerr << "The number of matrix dimension must be positive" << endl; + exit(1); + } + array_alloc(A, rozmiar); + getchar(); + + //jeszcze czyszczenie pamięci + exit(0); } \ No newline at end of file