Portál AbcLinuxu, 12. května 2025 06:34

Dotaz: Problem s jednoduchym programem v C

17.5.2010 21:05 Pavel
Problem s jednoduchym programem v C
Přečteno: 347×
Odpovědět | Admin
Ahoj, mam problem s enumeraci v C:

http://pastebin.com/Du8Mieea

nevim, jak mam do toho typu dosazovat :-(.....samozrejme sem o enum hledal info, ale ani to nmepomohlo :-(

jinak vystup: 3 [main] duc 6916 exception::handle: Exception: STATUS_ACCESS_VIOLATION 1122 [main] duc 6916 open_stackdumpfile: Dumping stack trace to duc.exe.stackdump

RUN FAILED (exit value 35 584, total time: 2s)

Predem moc diky za rady :-)


Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

17.5.2010 21:30 Tomáš Skočdopole | skóre: 13
Rozbalit Rozbalit vše Re: Problem s jednoduchym programem v C
Odpovědět | | Sbalit | Link | Blokovat | Admin
void ctiTyp(typPracovnika typ) {
    int volba = 0;
    printf("Zadej typ pracovnka (1 = Administrativni, 2 -Vykonny): \n");
    scanf("%d", volba);
    switch (volba) {
        /* tady je nakej problem :-( */
        case 1:
            typ = ADM;
            break;
        case 2:
            typ = EXEC;
            break;
        default:
            printf("spatna volba, pracovnik bude vytvoren jako aministrativni\n");
            break;
    }
}
Rekl bych, ze to je tim, ze se snazis zmenit hodnotu promenne typ, ktera je vstupnim argumentem funkce. Navrhuji vratit hodnotu pomoci return, nebo pres ukazatel. Tomas
17.5.2010 22:07 Pavel
Rozbalit Rozbalit vše Re: Problem s jednoduchym programem v C
Diky za radu, trochu sem to upravil:

http://pastebin.com/Wx0BhkLP

nejak takto? stejne mi ale neni jasne jak to vratit :-( ?

Diky za radu

17.5.2010 23:50 Tomáš Skočdopole | skóre: 13
Rozbalit Rozbalit vše Re: Problem s jednoduchym programem v C
Mno, precti si kdyztak jeste jednou kapitolu o ukazatelich.

Tam se dozvis zhruba toto:
void funkce (int* cislo) { ... }
int a = 3;
funkce (&a); // tato funkce muze manipulovat s hodnotou a
Pripadne takto:
int funkce (int cislo) { ... }
int a = 3;
a = funkce (a);
Jinak, takhle bych to zrovna nedelal. To zase neni problematika daneho jazyka, ale navrhu programu - napriklad Dokonaly kod od Mcconella.

Zde urcite neni spravne nacitat jmeno a prijmeni uvnitr funkce pro vytvoreni pracovnika.
/* vytvoreni pracovnika */
pracovnik vytvorPracovnika(int id) {
    pracovnik pomocnyPracovnik;
    pomocnyPracovnik.id = id;
    /* volani metod, ktere nactou jmeno a prijmeni  a typ*/
    ctiJmeno(pomocnyPracovnik.jmeno);
    ctiPrijmeni(pomocnyPracovnik.prijmeni);
    pomocnyPracovnik.typ = ctiTyp();
    return pomocnyPracovnik;
}

Řešení 1× (martin())
18.5.2010 07:44 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Problem s jednoduchym programem v C
Odpovědět | | Sbalit | Link | Blokovat | Admin
int volba = 0;
...
scanf("%d", volba);
Ak formátovací reťazec scanf obsahuje %d, tak ako argument sa očakáva pointer na int a nie int. Teda správne má byť:
scanf("%d", &volba);
18.5.2010 11:08 Pavel
Rozbalit Rozbalit vše Re: Problem s jednoduchym programem v C
ano, zde byl problem.... moc diky za radu:-)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.