čtvrtek 25. srpna 2011

C/C++: Chyba a její příčina

Chybu v následujícím kódu odhalíte snadno, ale proč je výpis při chybě takový jaký je?

Definujme typ struktura o 3 bytových položkách..

typedef struct
{
  byte polozka1;
  byte polozka2;
  byte polozka3;
} tStructure;

a funkci pro její naplnění

void setStructure(tStructure *p_structure){
 byte a = 55;
 byte b = 66;
 
 getStructure();  //jen výpis
 p_structure->polozka1 = 11;
 getStructure();  //jen výpis 
 p_structure->polozka2 = 22;
 getStructure();  //jen výpis 
 p_structure->polozka3 = a + b;
 getStructure();  //jen výpis 
}

samotný kód jsem potom napsal takhle..
tStructure *p_structure;  //pointer na strukturu

setStructure(p_structure);

Funkce **getStructure()** slouží jen v výpisu a ten vypdal následovně..


00 00 00 //na začátku
11 00 00 //po zápisu do polozka1
11 22 00 //po zápisu do polozka2
55 66 BB //po zápisu do polozka3


Proč není po posledním zápisu obsah struktury 11 22 BB, tak jak jsem očekával?

Proč je tam zrovna to, co tam je?

Já myslím, že vím :D

Žádné komentáře:

Okomentovat