Diskuze: struct
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 6 zpráv z 6.
//= 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.
Myslíš něco jako tohle?:
struct struktura{
int data;
};
void funkce(struktura *arg){
}
int main(int argc, char *argv[]){
struktura *test = new struktura();
funkce(test);
delete test;
return 0;
}
typedef struct
{
}POLOZKA;
void fillStruct(ifstream &file, struct POLOZKA *polozka)
{
}
int main()
{
POLOZKA *polozka = new POLOZKA[rows];
}
ono je to vlastne ako pole struktur ... to fillStruct neviem nejako vyriesit ...
Třeba takto?:
typedef struct
{
int data;
}POLOZKA;
void fillStruct( POLOZKA *polozka)
{
int i;
for(i=0;i<10;++i)printf("%d\n", polozka[i].data);
}
int main()
{
int i, rows = 10;
POLOZKA *polozka = new POLOZKA[rows];
for(i=0;i<rows;++i)polozka[i].data = i;
fillStruct(polozka);
return 0;
}
Jinak v C++ se většinou používá:
struct POLOZKA
{
int data;
};
Protože snad jediný důvod proč se to píše v C pomocí typedef, je aby se nemuselo vždy psát před název struktury "struct", což v C++ už není potřeba.
no teraz mi to vyhadzuje ze ta POLOZKA nebola deklarovana...
Zvláštní, protože ta POLOZKA v tomto kódu rozhodně deklarovaná je. Zkusil jsi to okopírovat přesně jak jsem to poslat? (+ #include <cstdio>, ten kód jsem zkoušel a funguje přesně jak má) Nevypisuje to ještě nějaké jiné chyby? Zkus ještě zápis tím druhým způsobem. (I když dost pochybuji, že by to mohlo něco změnit) Pokud nic nefunguje, co používáš za compiler?
Zobrazeno 6 zpráv z 6.