Ukratko:
Citat:
1: Kojim tipom mogu da definisem broj sa npr 10000 cifara?
Ne postoji ugrađeni C/C++ tip za tako velike brojeve. Problem se rešava:
- pravljenjem sopstvene klase/funkcije za manipulaciju velikim brojevima, pri čemu se na primer čuvanje broja može vršiti fizički u nizu znakova
- korišćenjem gotovih klasa/funkcija kojih ima dosta po netu
Citat:
2: Kako je moguce definisati niz sa npr 1000000 elemenata?
Prvo se zapitaj da li taj sistem koji modeluješ ima baš tačno toliko elemenata. Možda ima manje, a možda će imati i više.
U principu:
char niz[1000000];
... će možda završiti posao, ali verovatmo i prepuniti stack šro može dovesti do pucanja programa.
Bolje je:
char *niz;
if ( (niz = (char*)malloc(1000000) ) == NULL )
{
// nema dovoljno memorije
exit( 1 ); // neki exit ili return
}
// ...
free( str );
Konačno, najbolje je koristiti neku konejnersku strukturu (koja je zasnovana na listama) gde će se za svako dodavanje elementa po potrebi i alocirati parče memorije. Tako da nema bespotrebnog rezervisanja prostora.
Svakako, najbolje rešenje zavisi od konkretnog problema koji rešavaš, tako da ćeš najtačniji odgovor dobiti ako izneseš šta tačno želiš da uradiš.