Beim Ankleben knalltes



  • Hallo,
    bei der letzten Schleife des kleinen Programms, das ich bis auf die Knochen reduziert habe, knallts.
    Ich will einfach einen Vektor an einen anderen ankleben.
    Kann mir jemand sagen, warum es einen Absturz gibt?

    #include <iostream>
    #include <vector>
    
    using namespace std;
    
    int main()
    {
    	const int z = 4, s = 7;
    	int i, j;
    
    	//Originalvektor
    	vector<vector<int> >m_arr(z, vector<int>(s));
    	for (i = 0; i < z; i++)
    		for (j = 0; j < s; j++)
    			m_arr[i][j] = 1;
    
    	//Sammelvektor
    	vector<vector<int> >naa(z, vector<int>(s));
    	for (i = 0; i < z; i++)
    		for (j = 0; j < s; j++)
    			naa[i][j] = m_arr[i][j];
    
    	//Originalvektor mit verändertem Wert
    	for (i = 0; i < z; i++)
    		for (j = 0; j < s; j++)
    			m_arr[i][j] = 2;
    
    	//Originalvektor an Sammelvektor ankleben
    	naa.resize(2*z); 
        for (i = 0; i < 8; ++i) 
            naa[i].resize(s);	
    	//hier knallts irgendwo
    	for (i = z; i < 2*z; i++)
    		for (j = 0; j < s; j++)
    			naa[i][j] = m_arr[i][j];
    
    	return 0;
    }
    


  • m_arr ist nicht so groß, dass du da mit i indizieren darfst.


Anmelden zum Antworten