Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

C: rec u tabelu pointera?!

[es] :: C/C++ programiranje :: C: rec u tabelu pointera?!

[ Pregleda: 2519 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

pajac
Slovenija

Član broj: 17163
Poruke: 66
*.dsl.siol.net.



Profil

icon C: rec u tabelu pointera?!11.05.2005. u 16:04 - pre 229 meseci
Imam mali problem sa upisivanjem reči it *.txt u tabelu pointera.

Znam da fscanf(fp,"%s",c) prenese referencu reči u pointer ali mi nije jasno kako bi to smestio u tabelu pointera?

fscanf() vrati sledeče;
*c=
reč1
reč2
reč3
reč4

ja bi voleo;
*tabela[0]=reč1
*tabela[1]=reč2
...

Neka ideja??
If we want to discover, we first have to be willing to get lost!
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4901
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: C: rec u tabelu pointera?!11.05.2005. u 16:40 - pre 229 meseci
Evo ti ideja... Kao prvo, reci mogu biti razlicite duzine pa zato treba dinamicki
da rezervises memoriju. Glupo je da proglasis sve fiksnom duzinom, jer... zaboravi,
tako se ne radi!

// SVE OVO JE PSEUDO KOD !!!

Code:

#define MAX_BROJ_RECI 1000
#define MAX_DUZINA_RECI 1000

char *reci[MAX_BROJ_RECI];

char temp[MAX_DUZINA_RECI];

int brojac = 0;

// FILE *fp = ...

// citanje
while ( ! KRAJ_DATOTEKE )
{
   fscanf( fp,"%s", temp )

   if ( ( reci[ brojac ] = (char *) malloc( strlen( temp ) + 1 ) ) == NULL )
   {
      printf( "Neuspesno!\n" );
      // ... kraj rada ...
   }
   else
   {
      if ( brojac<MAX_BROJ_RECI )
         strcpy( reci[ brojac ], temp );
   }     

   ++brojac;
}

// oslobadjanje memorije
int i;
for ( i=0; i<brojac; i++ )
   free ( reci[ i ] );

 
Odgovor na temu

pajac
Slovenija

Član broj: 17163
Poruke: 66
*.dsl.siol.net.



Profil

icon Re: C: rec u tabelu pointera?!11.05.2005. u 17:16 - pre 229 meseci
Bas to mi je trebalo!! :):)

Hvala!!
If we want to discover, we first have to be willing to get lost!
 
Odgovor na temu

pajac
Slovenija

Član broj: 17163
Poruke: 66
*.dsl.siol.net.



Profil

icon Re: C: rec u tabelu pointera?!11.05.2005. u 17:24 - pre 229 meseci
Pa kad smo več ovde, da pitam jos nesto.
Dali je moguče, da stek (stack) definiram kao tabelu pointera (do tu mi je jasno) i da to na neki način dinamički po potrebi večam??

ako je definiran stek[5] i da trebam upisat 7.element, da bi stek proširio na stek[6] u runtime-u?
If we want to discover, we first have to be willing to get lost!
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4901
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: C: rec u tabelu pointera?!11.05.2005. u 17:28 - pre 229 meseci
Sve je to moguce, ali ne bas jednostavno... u praksi se koriste raznorazne stream
klase, npr TMemoryStream za takve stvari.

Takodje, tvoj primer u praksi, u C++-u, u okviru kontretne klase se resava ovako:

Code:

TStringList *SL = new TStringList;
SL->LoadFromFile( putanja_do_datoteke );
// SL[0] je prvi red
// SL[0][1] prvo slovo prvog reda (u VCL-u)
// itd ...
delete SL;
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
..31.216.81.gus.vf.siwnet.net.

Sajt: dejan.lekic.org


+2 Profil

icon Re: C: rec u tabelu pointera?!12.05.2005. u 02:55 - pre 229 meseci
pajac, stek dinamicka struktura se uglavnom implementira pomocu jednostruko povezane list (single-linked list), tako da zaboravi ikakvu implementaciju pomocu nizova, jer nije bas efikasna. Postoje specijalni slucajevi kada se kao "storage" koristi niz (array), ali ti slucajevi su jako retki.

Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

[es] :: C/C++ programiranje :: C: rec u tabelu pointera?!

[ Pregleda: 2519 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.