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