Salve a tutti, ho un codice che in genere non da nessun problema.
Dà problemi invece "a quanto pare" se le dimensioni ( nodisaldatura.size() ) cominciano a essere grandi e se ne esce dal main:
codice:
print("CALCOLO FORZE LINEARI EQUIVALENTI");
    int VirtualNode; //0 = NO; 1=SI
    double fx[nodisaldatura.size()];
    double fy[nodisaldatura.size()];
    double fz[nodisaldatura.size()];
    double mx[nodisaldatura.size()];
    double my[nodisaldatura.size()];

    //double mz[nodisaldatura.size()]; //non necessaria ai fini del calcolo dello structural stress
    std::vector<double> fx_vn(nodisaldatura.size()-2,0.);
    std::vector<double> fy_vn(nodisaldatura.size()-2,0.);
    std::vector<double> fz_vn(nodisaldatura.size()-2,0.);
    std::vector<double> mx_vn(nodisaldatura.size()-2,0.);
    std::vector<double> my_vn(nodisaldatura.size()-2,0.);

    std::vector<double> fx_cir(nodisaldatura.size(),0.);
    std::vector<double> fy_cir(nodisaldatura.size(),0.);
    std::vector<double> fz_cir(nodisaldatura.size(),0.);
    std::vector<double> mx_cir(nodisaldatura.size(),0.);
    std::vector<double> my_cir(nodisaldatura.size(),0.);

    std::vector<std::vector<double> > M;//(nodisaldatura.size(),nodisaldatura.size());
    std::vector<std::vector<double> > Mvirtual;//nel caso si usi il metodo del nodo virtuale

    //inizializzazione
    std::vector<double> riga_n(nodisaldatura.size(),0.); //serve per inizializzazione matrice con tutti 0
    std::vector<double> riga_m(nodisaldatura.size()-2,0.);
    for(int i=0;i<nodisaldatura.size();i++) {
        fx[i]=0.;
        fy[i]=0.;
        fz[i]=0.;
        mx[i]=0.;
        my[i]=0.;
        //mz[i]=0.; //non necessaria ai fini del calcolo dello structural stress
        M.push_back(riga_n);
        Mvirtual.push_back(riga_m);
    }
da qualche parte nel codice in neretto qualcosa non funziona e il programma si blocca...
Cosa può essere e come potrei risolvere?

Vi ringrazio!