1
Ohjelmointi, palvelimet ja muu edistyneempi käyttö / Vs: c++ for -aiheinen (kesä)pähkinä
« : 15.06.24 - klo:11.30 »
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:
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.
Jos haluasin tehdä ohjelman, joka toimii kuten ymmärrän kuvauksestasi, se menisi mielestäni näin:
Koodia: [Valitse]
#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.

Tuli vain tuo toinen vaihtoehto ensin mieleen. Ajattelin kyllä, että sen täytyy olla muokattavissa hiukan yksinkertaisemmaksi (de Morganin lait). En jaksanut kuitenkaan miettiä kun löysin toimivan lausekkeen - ja logiikka on minulle usein haastavaa.