Anonymní profil theM11 – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil theM11 – Programujte.comAnonymní profil theM11 – Programujte.com

 

Příspěvky odeslané z IP adresy 79.98.158.–

theM11
C / C++ › Nepřepisování dat ve struktuře
27. 12. 2013   #185709

#4 KIIV
Jde mi spíš o to, jak by se měly přidávat prvky té struktury

C / C++ › Nepřepisování dat ve struktuře
27. 12. 2013   #185707

#2 KIIV
Dobrá.
Tak jak by to načítání mělo vypadat ?

C / C++ › Nepřepisování dat ve struktuře
27. 12. 2013   #185703

Problém: při výpisu dat ze struktury se zobrazují pouze naposledy zadaná data
Proč to dělá ? Tipuji, že ukazatel je stále na jednom místě.
Kód, který sem přidávám je tak trochu směs googlení a mé vlastní tvořivosti. Takže bych rád uvítal i kritiku za chyby. Díky

Struktura do které zapisuji vypadá takto:
typedef struct pocitac{
  int hodnota;
  char jmeno[30];
  struct pocitac *p_dalsi;
}POCITAC;

Funkce, která by měla zajišťovat přidání dat do struktury:

POCITAC *pridej(POCITAC **n, int hodnota, char nazev[30])
{
  POCITAC* prvni = NULL;

  prvni = malloc(sizeof(POCITAC));

  POCITAC* dalsi = malloc(sizeof(POCITAC));
  dalsi->hodnota = hodnota;
  strcpy(dalsi->jmeno,nazev);
  dalsi->p_dalsi = NULL;

  if(prvni == NULL){
    prvni = dalsi;
  }
  POCITAC* p_novy = prvni;
    while(p_novy->p_dalsi != NULL) {
      p_novy = p_novy->p_dalsi;
    }
  p_novy->p_dalsi = dalsi;
  p_novy = prvni;
  return p_novy;
}

 

int main()
{
  int pocitej = 0;
  int i = 0;
  POCITAC *p_ukaz = NULL;
  p_ukaz = malloc(sizeof(POCITAC));

while(strcmp(p_ukaz->jmeno, "konec") != 0) {
  scanf("%d",&p_ukaz->hodnota);
  scanf("%s", &(p_ukaz->jmeno));

  pridej(&p_ukaz,p_ukaz->hodnota,p_ukaz->jmeno);
  pocitej++;
}
for(i=0;i<pocitej;i++){
  list_print(p_ukaz);
}
  return 0;
}

Děkuju moc za pomoc, tak trochu se v tom ztrácím.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý