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

C: rec u tabelu pointera?!

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

[ Pregleda: 1207 | 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

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!
11.05.2005. u 16:04 

X Files
Vladimir Stefanovic
Pozarevac

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

Jabber: xfiles@elitesecurity.org
Sajt: www.antivari.com


Profil

icon Re: C: rec u tabelu pointera?!11.05.2005. u 16:40
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 ] );


FREEWARE
Di rečnik, v1.0.058 (srp-eng/eng-srp priručni rečnik)
http://www.antivari.com
11.05.2005. u 16:40 

pajac
Slovenija

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



Profil

icon Re: C: rec u tabelu pointera?!11.05.2005. u 17:16
Laptopovi

Bas to mi je trebalo!! :):)

Hvala!!
If we want to discover, we first have to be willing to get lost!
11.05.2005. u 17:16 

pajac
Slovenija

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



Profil

icon Re: C: rec u tabelu pointera?!11.05.2005. u 17:24
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!
11.05.2005. u 17:24 

X Files
Vladimir Stefanovic
Pozarevac

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

Jabber: xfiles@elitesecurity.org
Sajt: www.antivari.com


Profil

icon Re: C: rec u tabelu pointera?!11.05.2005. u 17:28
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;

FREEWARE
Di rečnik, v1.0.058 (srp-eng/eng-srp priručni rečnik)
http://www.antivari.com
11.05.2005. u 17:28 

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

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

Sajt: dejan.lekic.org


Profil

icon Re: C: rec u tabelu pointera?!12.05.2005. u 02:55
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
12.05.2005. u 02:55 

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

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

Postavi temu Odgovori

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