NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Head
Člen
Avatar
Head:19.11.2015 19:31

vedel by mi niekto poradiť ako vytvoriť funkciu ktora ma argument strukturu vytovrenu pomocou new ?

 
Odpovědět
19.11.2015 19:31
Avatar
tomisoka
Tvůrce
Avatar
Odpovídá na Head
tomisoka:19.11.2015 19:41

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;
}
 
Nahoru Odpovědět
19.11.2015 19:41
Avatar
Head
Člen
Avatar
Odpovídá na tomisoka
Head:19.11.2015 19:48
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 ...

 
Nahoru Odpovědět
19.11.2015 19:48
Avatar
tomisoka
Tvůrce
Avatar
Odpovídá na Head
tomisoka:19.11.2015 19:59

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.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
19.11.2015 19:59
Avatar
Head
Člen
Avatar
Odpovídá na tomisoka
Head:19.11.2015 20:09

no teraz mi to vyhadzuje ze ta POLOZKA nebola deklarovana...

 
Nahoru Odpovědět
19.11.2015 20:09
Avatar
tomisoka
Tvůrce
Avatar
Odpovídá na Head
tomisoka:19.11.2015 20:52

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?

 
Nahoru Odpovědět
19.11.2015 20:52
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.