Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: struct

C a C++ C a C++ struct

Aktivity (1)
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
Redaktor
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
Redaktor
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í
+1 bodů
Ř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
Redaktor
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.