I'm writing a program for my algorithmic math class at university and I'm using Win 7 (x64), Eclipse Oxygen.1a Release (4.7.1a) with MinGW 6.3.0.
Whenever I build and run the program it crashes with windows claiming 'Abgabe3.exe stopped working' but when trying to find the problem using the debugger and breakpoints I step trough the whole program and it finishes without errors...
I stripped everything not used by the problematic function and copied everything into a seperate file and the exact problem occurs. Maybe somebody has a clue what happened at my side. ^^
#include <math.h>       /* pow, sqrt */
#include <iostream>     /* cin, cout */
#include <new>          /* new */
#include <string>       /* string */
#include <stdlib.h>     /* srand, rand */
#include <time.h>       /* time */
using namespace std;
void NORM(double* res, double* x, int n){
    res[0] = 0.0;
    for(int i = 0; i < n; i++){
        res[0] += pow(x[i], 2);
    }
    res[0] = sqrt(res[0]);
}
void initRand(double* x, int n){
    srand (time(NULL) * rand());
    for(int i = 0; i < n; i++){
        x[i] = (((double) rand()) / ((double) RAND_MAX));
    }
}
void createArray(double* &x, int n){
    if (n > 0){
        x = new double[n];
        initRand(x, n);
    }
}
void printArray(double* x, int n){
    if (x != NULL){
    cout<<"(\n";
    for(int i = 0; i < n; i++){
        if(i+1 == n) cout<<x[i];
        else if ((i % 5) == 0) cout<<x[i];
        else if ( ((i+1) % 5) == 0 ){
            cout<<", "<<x[i]<<"\n";
        }
        else {
            cout<<", "<<x[i];
        }
    }
    cout<<"\n)\n";
    }
    else cout<<"\nError: pointer = NULL\n";
}
unsigned long long int bin(unsigned int n, unsigned int k){
    unsigned long long res = 1;
    if(k == 0) return 1;
    else if( n >= k){
        for(unsigned long long int i = 1; i <= k; i++){
            res *= (n + 1 - i) / i;
        }
    }
    else return 0;
    return res;
}
void newArray(double** x, unsigned int v, unsigned int n){
    for(unsigned int i = 0; i < v; i++){
        double* ptr = x[i];
        createArray(ptr,n);
        x[i] = ptr;
    }
}
void experiment(double** vektorArray){
    unsigned int n = 10, v = 20;
    cout<<"Dimension n = "<<n<<"\nAnzahl Versuche v = "<<v<<endl;
    //Erstellen der Vektoren
    cout<<"Erstellen - starte\n";
    vektorArray = new double*[n];
    newArray(vektorArray, v, n);
    cout<<"Erstellen - fertig\n";
    for(unsigned int i = 0; i < v; i++){
        if(i%10 == 0) printArray(vektorArray[i], n);
    }
}
int main(int argc, char** argv){
    double** vektorArray = NULL;
    experiment(vektorArray);
    return 0;
}
 
     
    