Diskuze: C - Struktura_vypis
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Buhužel mi to nejde
Čo myslíš tým nejde? Vyhodí ti to chybu? Ak hej už pri vkladaní alebo až pri výpise či niekde úplne inde? Dostaneš sa do case vetvy? Alebo výpis zbehne len čiastočne? A taktiež by to chcelo vidieť metódu novyZajezd
Obsah struktury můžeš vypsat například takto:
#include <stdio.h>
#define MAX 20
typedef struct Zajezd {
int cislo;
char *nazev;
char *destinace;
int kapacita;
int pocet_ucastniku;
} ZAJEZD;
int pocetZajezdu;
ZAJEZD Zajezdy[MAX] = {{ 1, "Japonsko", "Tokio", 30, 20 },
{ 2, "Slovensko", "Poprad", 20, 15 },
{ 3, "Rakousko", "Viden", 25, 25 }};
int main(int argc, char* argv[]) {
printf("Vypis stavu vsech zajezdu\n\n");
printf("Cislo \t, Nazev \t, Pocet ucastniku\n");
pocetZajezdu = 0;
while (Zajezdy[pocetZajezdu].cislo) {
printf("%d \t, %s \t, %d \n", Zajezdy[pocetZajezdu].cislo, Zajezdy[pocetZajezdu].nazev, Zajezdy[pocetZajezdu].pocet_ucastniku);
pocetZajezdu++;
}
putchar('\n');
return 0;
};
Kód je poupraven z důvodu potřeb, neboť tvůj kód neobsahuje vše. Ale můžeš jej využít ve své aplikaci. Za povšimnutí stojí způsob výpisu obsahu struktury, jak je využito toho, že existujícímu zájezdu je přiřazeno číslo. Samozřejmě můžeš použít i for cyklus ale jeho způsob užití už souvisí s částmi programu, které tam zahrnuty nejsou. Chyba je v implementaci struktury. To co vytváříš je pole ukazatelů na strukturu, ale tyto ukazatele na nic neukazují.
Děkuju za reakce. Hází mi to tuto hlášku: (obrázek)
...ale předpokládám, že je to způsobené tím, že ukazatelé neodkazují
tam kam mají.
Funkce pro vytvoření nového:
ZAJEZD *novyZajezd(const char *n, const char *de, int k, Date& da) {
ZAJEZD *z = new ZAJEZD;
z->cislo = ++cisloZajezdu;
z->datum = da;
z->nazev = new char[strlen(n) + 1];
strcpy_s(z->nazev, strlen(n)+1, n);
z->destinace = new char[strlen(de) + 1];
strcpy_s(z->destinace, strlen(de)+1, de);
z->kapacita = k;
z->pocet_ucastniku = 0;
return 0;
};
Mohl by jste mi vysvětlit jak správně v tomto případě poukázat na
ukazatelem na vytvořené zájezdy?
Do CASE větve se dostanu, hodí to hlášku viz obrazek a žádný výpis se
neprovede...
Díky moc! už to jede Děkuju všem za příspěvek.
Zobrazeno 8 zpráv z 8.