Minulla ohjelmasi kaatui suoritettaessa ("...terminated by signal SIGSEGV (Address boundary error)").
Jos haluasin tehdä ohjelman, joka toimii kuten ymmärrän kuvauksestasi, se menisi mielestäni näin:
#include <vector>
#include <iostream>
int main()
{
int ktab[10] = {};
ktab[4] = 44;
for(auto i : ktab) std::cout << i << " ";
std::cout <<ktab[4];
return 0;
}
Erot ovat siinä, että alustan taulukon (nollilla) ja tulostan i:n arvon suoraan (sen sijaan että käyttäisin taulukon elementtejä indekseinä itse taulukkoon, joka johtaa tietenkin taulukon rajojen ylittämiseen). i on ohjelmassasi harhaanjohtava muuttujan nimi, koska se ei sisällä indeksiä vaan itse elementin.