Siemka. Mam oooogromny problem. Pisze sobie programy pod OI . No fakt w kilku testach istnieje duże prawdopodobieństwo, że coś spieprzyłem tzn. wpisałem coś poza tablicę (przekroczyłem jej rozmiar), albo jakieś inne błędy. Wiem, że to skutkuje tym, że wpisuje coś do komórki w pamięci która jest odpowiedzialna za coś innego... nieważne....
Problem polega na tym, zrobiłem sobie klase:
class wynik
{
public:
unsigned int p_segm;
unsigned int k_segm;
bool znaleziono;
};
i staram się zrobić tablicę w zapasie pamięci:
wynik *wyniki = new wynik[lb_wartosci];
I w tej linijce kompilator niczego nie zaznacza. Składnia i wszystko jest ok, w ogóle cały program jest w porządku. Jednak (za pomocą komentarzy) doszedłem do wniosku że właśnie przy wykonywaniu tej instrukcji dzieje się owa dziwna sytuacja. Już gdy wprowadzam informacje w konsoli system tuż przed wykonywaniem tej linii wywala błąd.. nie pamiętam dokładnie ale to jest dosyć znany bład:
instruckcja 0x636364** odwołująca się do 0x63463**** pamięć nie może być "read" ** (<- te liczby oczywiście na chybił trafił napisałem)
No i ja myśle... i myśle, gdzie tu jest błąd. Nie znalazłem. Ale jest jeszcze ciekawsza sytuacja. Programy który działał wcześniej poprawnie, gdy go na nowo skompilowałem wywala błąd. Tzn. podaje wartość: 4294967295 o ile to cokolwiek znaczy. Mam wcześniej skompilowaną wersję tego programu i ona działa poprawnie... Czy takie problemy mogą być spowodowane błędami jakie opisałem na początku ? Popełniłem również błąd w funckjach pritnf / scanf podając lub nie podając adres tam gdzie nie był potrzebny. Czyli ostateczne pytanie: zepsułem komputer ? :P aha antywirus nic nie pokazał komputer jest czysty.
PS: Przepraszam za nazwę tematu ale nie wiedziałem jak to lepiej zatytułować.
EDIT: problem chyba rozwiązany o ile definicja:
unsigned int x;
short int* liczby = new short int[x];
jest poprawna.