r00t Temat założony przez niniejszego użytkownika |
» 2017-01-18 22:39:03 co do c_str i atoi, string konwertuje mi na int i nawet go wypisuje bo sprawdzałem ...
Pętla może zaczytać maksymalnie 4 linie, jak dodam więcej to się wysypuje |
|
r00t Temat założony przez niniejszego użytkownika |
» 2017-01-18 23:40:30 dobra teraz wywala mi błąd bad_alloc. Tu wersja kodu z która kończe na dzisiaj : http://pastebin.com/KUc3kteX. Błąd wywala mi dokładnie przy linijce 121. Nie potrafi przydzielić pamięci. |
|
j23 |
» 2017-01-19 11:46:04 Drobna uwaga: jak wklejasz kod do pastebina, ustaw kolorowanie składni, bo teraz całość trzeba skopiować da jakiegoś formatera, żeby dało się to czytać. |
|
r00t Temat założony przez niniejszego użytkownika |
» 2017-01-19 11:59:32 @jn23 : Oki, następnym razem będę pamiętał, wiesz może o co chodzi w kodzie ? |
|
j23 |
» 2017-01-19 14:38:32 Nie wiem, dlaczego dostajesz wyjątek bad_alloc, ale: while( getline( plik, linia ) ) { ... for( int i = 0; i < l; i++ ) { ... PomiaryTemp = new double *[ l ]; PomiaryTemp[ i ] = new double[ 4 ]; for( int y = 0; y < 4; y++ ) { switch( y ) { case 0: PomiaryTemp[ i ][ y ] = temp1I; break; case 1: PomiaryTemp[ i ][ y ] = temp2I; break; case 2: PomiaryTemp[ i ][ y ] = temp3I; break; case 3: PomiaryTemp[ i ][ y ] = temp4I; break; } } ... } l++; } |
Po co tworzysz tablicę PomiaryTemp, jeśli i tak przypisujesz tylko jedną wartość do niej? Oczywiście jest też wyciek, bo każdy obrót pętli while tworzy nową tablicę PomiaryTemp, gubiąc poprzednią. Zapewne chodzi Ci o zwiększanie wielkości tablicy, ale tego nie robi się w ten sposób. Tworzysz nową tablicę o jeden większą, kopiujesz zawartość starej tablicy do nowej, usuwasz starą, nową przypisujesz wskaźnikowi PomiaryTemp. A najlepiej będzie jeśli użyjesz vectora ;) p.s. te same uwago odnośnie tablicy PomiaryE. |
|
r00t Temat założony przez niniejszego użytkownika |
» 2017-01-19 21:58:52 @j23 : z tą tablicą masz rację - teraz to zauważyłem, ale co do wartości że jest tylko 1 to nie jest jeden tylko l jak Lidia, czyli inaczej powinny zwiekszać się wiersze wraz z obrotem pętli while |
|
r00t Temat założony przez niniejszego użytkownika |
» 2017-01-21 23:20:52 @j23 :
Z tym whilem miałeś rację, użyłem vector, Jednak problem jest taki że wyskakuje taki błąd :
[C++ Error] Unit1.cpp(98): E2034 Cannot convert 'vector<Pomiar *,allocator<Pomiar *> >' to 'int'
[C++ Error] Unit1.cpp(98): E2092 Storage class 'auto' is not allowed here
Poniżej kod : http://pastebin.com/P7NHjsbU
Macie pomysł ? |
|
j23 |
» 2017-01-22 11:59:49 Włącz w opcjach obsługę współczesnego C++, czyli C++14.
BTW, dlaczego w vectorze trzymasz wskaźniki? Nie możesz po prostu trzymać w nim obiektów klasy Pomiar?
Jak już koniecznie musisz trzymać tam wskaźniki, użyj unique_ptr, czyli vector<unique_ptr<Pomiar>>. |
|
1 2 3 « 4 » 5 6 |