[ pajac @ 11.05.2005. 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??
[ X Files @ 11.05.2005. 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 ] );

[ pajac @ 11.05.2005. 17:16 ] @
Bas to mi je trebalo!! :):)

Hvala!!
[ pajac @ 11.05.2005. 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?
[ X Files @ 11.05.2005. 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;
[ leka @ 12.05.2005. 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.