ďťż

Ładny brzuch

mam program pod konsole który musi sobie utworzyc tablice jednek jesli ta tablica jest za duza to wywala mi blad, jak mozna rozwiazac ten problem... ??



A sprawdziles kabelek od sieci czy Ci nie wyskoczyl ? (bo zakladam ze to error o braku dostepu do sieci - tak mi szklana kulka podpowiedziala :) (ale w sumie sie rozregulowala bo misiek ja stracil z polki ... anyway - sprawdz ten kabelek !).

Pozdr.
st3tc


mam program pod konsole który musi sobie utworzyc tablice jednek jesli ta tablica jest za duza to wywala mi blad, jak mozna rozwiazac ten problem... ??


mam program pod konsole który musi sobie utworzyc tablice jednek jesli ta tablica jest za duza to wywala mi blad, jak mozna rozwiazac ten problem... ??




A sprawdziles kabelek od sieci czy Ci nie wyskoczyl ? (bo zakladam ze to error o braku dostepu do sieci - tak mi szklana kulka podpowiedziala :) (ale w sumie sie rozregulowala bo misiek ja stracil z polki ... anyway - sprawdz ten kabelek !).

Pozdr.
    st3tc

a tak swoja droga to czy w standardzie c++ przy deklaracji tablicy nie trzeba czasem podac STALEGO rozmiaru? ale jesli nie trzeba i kompilator to przelknal to zaloze sie ze po prostu stos byl za maly i stad blad :D


Sorry ale Ciebie to wogóle nie rozumiem...
A to byl taki zarcik na forme Twojego pytania (z ktorego nic nie wynikalo) :)


Moj problem polega na tym, ze mam program który musi utworzyc duza tablice i potem wpisywac liczby, jest mi potrzebna naprawde duza tablica. Czy C++ na ograniczenia co do rozmiaru tworzonyhc tablic ?? Czy co ??
Nie ogranicza


nie robilem tablicy dynamicznej tylka nrmalnie

int r=0;
cin >> r;
int tab[r];

no i niestety jesli tablica była wieksza od chyba 550000 elementów to po uruchomieniu programu wywalalo mi blad

W takim przypadku to pewnie stack overflow lub cos takiego.

Nie alokuj duzych tablic lokalnych w ten sposob. Bo: one istnieja na stosie aplikacji. Ten stos jest ograniczony - mozna go zmienic (rozmiar) w opcjach linkera - ale zawsze bedzie ograniczal. A co wazniejsze - jest uzywany do np odkladania zmiennych, parametrow na stosik przy wolaniu funkcji, tworzeniu zmiennych lokalnych itp itd. To wycinek pamieci zarezerwowany dla programu na takie operacje - to bardzo cenny blok pamieci i trzeba go oszczedzac.

A jeszcze jedno to to ze forma zapisu jakiej uzyles nie jest poprawna na wszystkich kompilatorach.

Najlepiej zrob jak Ci radzil Real_Noname.

Pozdr.
st3tc
Użytkownik st3tc edytował ten post 21 kwiecień 2005, 04:59

a tak swoja droga to czy w standardzie c++ przy deklaracji tablicy nie trzeba czasem podac STALEGO rozmiaru? ale jesli nie trzeba i kompilator to przelknal to zaloze sie ze po prostu stos byl za maly i stad blad :D

kurde
tu nie chodzi o to czy sie zmienia czy nie
zrozum
jak robisz taka tablice W CZASIE DZIALANIA PROGRAMU to ona jest odkladana na stosie. a stos jest ograniczony, wiec jak podaz zbyt duzy rozmiar, to program sie wysypuje. po prostu. uzyje lepiej new albo malloc i po klopocie

a moze posypalo sie bo przekroczyl zakres inta??

lol :D zanim by to zrobil to i tak by sie posypalo :) no chyba ze ma pamiec w GB mierzona :D

Człowieku, a nie próbowałeś zarezerwować tablicy 2GB?? Nie!? A to dziwne... (Jakbyś nie złapał to jest sarkazm) A teraz tak na serio... Przeciętna pamieć RAM dzisiejszych komputerów ma 512MB. To chyba logiczne, że jeśli przekroczysz ten limit to Ci błąd wywali i może też Ci komp zawiesić - simple, right? Ale ta tablica raczej nie ma tyle... Więc jest druga możliwość, ale trzeba tu już znać idee tablic. Jest to jakaś ilość zmiennych tego samego typu zajmująca jakiś obszar w pamięci - koniecznie muszą następować jedna po drugiej. Zmienne w Ramie nie są układane jedna za drugą... Więc jeśli nie znajdzie się wystarczająco miejsca, żeby pomieścić (czyli musi znaleźć się u Ciebie te 55000 jednostek w RAMIE KTÓRE NASTĘPUJĄ PO SOBIE, aby można było tą tablicę pomieścić) SIMPLE. Poczytaj Symfonię C++ Grębosza :D Powodzenia.... PS. Z czym ty się zabierasz do C++ ??


Człowieku, a nie próbowałeś zarezerwować tablicy 2GB?? Nie!? A to dziwne... (Jakbyś nie złapał to jest sarkazm) A teraz tak na serio... Przeciętna pamieć RAM dzisiejszych komputerów ma 512MB. To chyba logiczne, że jeśli przekroczysz ten limit to Ci błąd wywali i może też Ci komp zawiesić - simple, right? Ale ta tablica raczej nie ma tyle... Więc jest druga możliwość, ale trzeba tu już znać idee tablic. Jest to jakaś ilość zmiennych tego samego typu zajmująca jakiś obszar w pamięci - koniecznie muszą następować jedna po drugiej. Zmienne w Ramie nie są układane jedna za drugą... Więc jeśli nie znajdzie się wystarczająco miejsca, żeby pomieścić (czyli musi znaleźć się u Ciebie te 55000 jednostek w RAMIE KTÓRE NASTĘPUJĄ PO SOBIE, aby można było tą tablicę pomieścić) SIMPLE. Poczytaj Symfonię C++ Grębosza :D Powodzenia.... PS. Z czym ty się zabierasz do C++ ??

wiec podsumujmy - chlopak zrobil sobie tablice na stosie i program sie mu wysypal - proste. wiec niech uzyje malloc albo new i bedzie po klopocie. wypowiedz qelu91 skomentowal st3tc wiec ja juz nie bede :)

Ja wiem co to jest stos i uważam, że to było domyśle żeby używać new (nie powinno się już używać malloc) i delete :D

pfffff :D nie powinno :) a ja uzywam bo lubie.

No dzieki, widze ze tu wiecej jest buractwa i ludzi którzy umieja sie tylko chwalic niz takich ktorzy umieja pomoc... :P
Juz zrobilem wiec sie nie wysilajcie....
dzieki

nawet tak nie gadaj bo dostales wszelkie informacje dotyczace tego problemu, a to pytanie tak naprawde w ogole sie nie powinno pojawic.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •