Ero sivun ”C” versioiden välillä

Poistettu sisältö Lisätty sisältö
Tigru (keskustelu | muokkaukset)
interWiki
p typo
Rivi 398:
Ensimmäisessä funktiossa src on kopioitava merkkijono ja dest taasen on kirjoitettavissa oleva muistialue, johon merkkijonon tulee mahtua kokonaisuudessaan, mukaanlukien loppuun tuleva null-merkki. Funktio palauttaa <tt>dest</tt>:n arvon. Jälkimmäisessä erona on että dest-alueelle kirjoitetaan korkeintaan n merkkiä ja jos tila ei riitä, ei kopion loppuun tule null-merkkiä ja kopiointi loppuu kesken kaiken. Tässä tilanteessa on erittäin tärkeää ettet käytä kopion käsittelyyn pituusrajoittamattomia funktioita (niitä joiden nimessä ei ole ylimääräistä n-kirjainta), sillä ohjelmasi saattaa kaatua. Tästä pienestä rajoituksesta huolimatta kannattaa yleensä käyttää <tt>strncpy</tt>-versiota, koska toinen vaihtoehto on vähintään yhtä tuhoisa: kopiota kirjoitetaan yli sille varatun muistialueen ja syntyy nk. buffer overflow, joka on yleisin tietoturva-aukkojen syy.
 
Edelleen, koska C-merkkijono on pointteri arvokontekstissa, vertaa myös <tt>==</tt>-operaattori merkkijonojen muistiosoitteita, eikä suinkaan merkkijonojen sisältöä. Sisällön vertailuun tulee käyttäääkäyttää seuraavia funktioita:
 
int strcmp(const char* s1, const char* s2);
Rivi 413:
=== Tietueen määritteleminen ===
 
MäärittelläänMääritellään uusi tietotyyppi 2d-avaruudessa sijaitsevaa pistettä varten:
 
struct point
Noudettu kohteesta ”https://fi.wikibooks.org/wiki/C