Pereiti prie turinio

C rodykle i masyva


Rekomenduojami pranešimai

Taigi yra sukurta struktura, dabar reiketu padaryti rodykle i masyvus, kad pvz kai uzpildau masyva reiketu nurodyi ne str.vardas o rodykle, kazka bandziau bet nesigauna <_<

 

 

struct duomenys {
char vardas[80];
char pavarde[80];
int asmenskodas[80];
char adresas[80];
int telefnr[80];
}; 

void main()
{
struct duomenys str[80];

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Galimas toks variantas su malloc() funckcija:

#include <stdio.h>
#include <stdlib.h>

struct duomenys {
char vardas[80];
char pavarde[80];
int asmenskodas[80];
char adresas[80];
int telefnr[80];
};

int main()
{
struct duomenys *str[80]; // rodykliu masyvas
for(int i=0;i<80;i++)
  {
     str[i]=malloc(sizeof(struct duomenys));
  }
//pvz
strcpy(str[0]->vardas,"klicko");
printf("%s",str[0]->vardas);

for(int i=0;i<80;i++)
  {
     free(str[i]); // atlaisvinti vietą
  }

}

O kam tau apskritai reikia tos rodyklės į masyvą? str[0].vardas būtų daug paprasčiau :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Galimas toks variantas su malloc() funckcija:

#include <stdio.h>
#include <stdlib.h>

struct duomenys {
char vardas[80];
char pavarde[80];
int asmenskodas[80];
char adresas[80];
int telefnr[80];
};

int main()
{
struct duomenys *str[80]; // rodykliu masyvas
for(int i=0;i<80;i++)
  {
     str[i]=malloc(sizeof(struct duomenys));
  }
//pvz
strcpy(str[0]->vardas,"klicko");
printf("%s",str[0]->vardas);

for(int i=0;i<80;i++)
  {
     free(str[i]); // atlaisvinti vietą
  }

}

O kam tau apskritai reikia tos rodyklės į masyvą? str[0].vardas būtų daug paprasčiau :)

 

 

Tokius reikalavimus destytoja iskele <_<

 

P.S dekui uz pagalba :rolleyes:

Redagavo Klicko
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Galimas toks variantas su malloc() funckcija:

#include <stdio.h>
#include <stdlib.h>

struct duomenys {
char vardas[80];
char pavarde[80];
int asmenskodas[80];
char adresas[80];
int telefnr[80];
};

int main()
{
struct duomenys *str[80]; // rodykliu masyvas
for(int i=0;i<80;i++)
  {
     str[i]=malloc(sizeof(struct duomenys));
  }
//pvz
strcpy(str[0]->vardas,"klicko");
printf("%s",str[0]->vardas);

for(int i=0;i<80;i++)
  {
     free(str[i]); // atlaisvinti vietą
  }

}

O kam tau apskritai reikia tos rodyklės į masyvą? str[0].vardas būtų daug paprasčiau :)

 

Nezinau kame beda, gal mano komppiliatorius svaigsta, bet kzkas cia blogai su malloc, nes meta errora

"(18) : error C2440: '=' : cannot convert from 'void *' to 'duomenys *'

Conversion from 'void*' to pointer to non-'void' requires an explicit cast"

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...