C (programovací jazyk): Rozdiel medzi revíziami
Smazaný obsah Přidaný obsah
Riadok 197:
Jedným z problémov je, že automaticky a dynamicky alokované objekty nie sú inicializované; pred prvým použitím majú ľubovoľnú hodnotu, ktorá sa práve nachádzala v im priradenom pamäťovom priestore. Táto hodnota je do veľkej miery nepredvídateľná a môže byť rôzna na dvoch strojoch, medzi dvomi spusteniami programu alebo medzi dvomi volaniami rovnakej funkcie. Ak sa program pokúsi použiť takúto neinicializovanú hodnotu, výsledok je zvyčajne nepredvídateľný. Väčšina moderných kompilátorov detekuje a varuje pred týmto problémom v určitej obmedzenej množine prípadov.
Pointery sú jedným z hlavných zdrojov nebezpečenstva
Hoci má C natívnu podporu statických polí, neoveruje, či sú indexy polí platné ([[bounds checking]]). Napríklad je možné zapísať do šiesteho prvku poľa s piatimi prvkami, čo má vo všeobecnosti nežiadúce následky. Nazývame to ''[[buffer overflow]]'' (pretečenie buffera) a je to nechvalne známy zdroj množstva bezpečnostných problémov C programov.
|