• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak to możliwe?

VPS Starter Arubacloud
+2 głosów
352 wizyt
pytanie zadane 24 czerwca 2015 w C i C++ przez jegor377 Stary wyjadacz (13,230 p.)

Witam! Ostatnio zacząłem się bawić tablicami w cpp żeby je lepiej zrozumieć i natrafiłem na coś mega dziwnego. Mianowicie stworzyłem sobie tablicę i chciałem odczytać element, który do niej nie należał i co dziwne UDAŁO MI SIĘ, a nawet zapisałem i program nie wywalił, nic się nie stało tak jakby element należał do tablicy. Dlaczego tak się dzieje, że program działa, przecież zawsze gdy chciałem to zrobić, to program wywalał. Daje screena na dowód i kod:

 

tutaj miał być obrazek...

 

kod

#include <iostream>
#include <vector>

using namespace std;

vector <int> a;
int b[5];

int main()
{
    cout << "Hello world!" << endl;
    cin.get();
    a.push_back(7);

    cout<<a[8]<<" "<<&a[8]<<endl;
    cout<<b[8]<<" "<<&b[8]<<endl;
    return 0;
}

1 odpowiedź

+4 głosów
odpowiedź 24 czerwca 2015 przez pewolt Mądrala (5,790 p.)
wybrane 24 czerwca 2015 przez jegor377
 
Najlepsza
Wieck tak: program ci sie nie wysypal dlatego nic do tych tablic nie zapisujesz. A to co ci sie wyswietlilo to jest tylko pamiec z ramu a obok adres do niej, moga ci sie tam wyswietlac jakies smieci czyli pozostalosci po innych programach
komentarz 24 czerwca 2015 przez jegor377 Stary wyjadacz (13,230 p.)
no ale zapisywanie pod te rekordy również działa. Po za tym czemu kiedyś się wysypywało, a teraz nie? xD
komentarz 24 czerwca 2015 przez pewolt Mądrala (5,790 p.)
bo prawdopodobnie z tej pamieci krzystal inny program i ci wysypalo
komentarz 24 czerwca 2015 przez pewolt Mądrala (5,790 p.)
hehe ile lapek w gore :3
komentarz 24 czerwca 2015 przez jegor377 Stary wyjadacz (13,230 p.)
aha, thx, teraz już wszystko rozumiem. xD Swoją drogą to nie wiedziałem, że mam tak wygodny dostęp do każdego rekordu pamięci ... xD
komentarz 24 czerwca 2015 przez pewolt Mądrala (5,790 p.)
problem pojawia sie przy edytowaniu pamieci innego programu ale sa do tego biblioteki :D
komentarz 24 czerwca 2015 przez jegor377 Stary wyjadacz (13,230 p.)
no wiem (winapi), thx za pomoc przyjacielu. xD Przy okazji taki odczyt pamięci i wywalenie programu, czyli to o co mi chodziło ... xD

 

#include <iostream>
#include <vector>

using namespace std;

int a=19;

int main()
{
    cout<<*(int*)(&a)<<endl;
    return 0;
}
komentarz 24 czerwca 2015 przez jegor377 Stary wyjadacz (13,230 p.)
AAA nie to... wystarczy wpisać byle jaki adress zamiast 'a' i wywali ... xD
komentarz 24 czerwca 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Pewolt, ode mnie masz jeszcze jedną, bo właśnie to miałem napisać :)

@jegor337 Przybądź na skype :D
komentarz 24 czerwca 2015 przez pewolt Mądrala (5,790 p.)
dzieki :3

sorry ale nie mam skype :( a zato mam steama
komentarz 24 czerwca 2015 przez pewolt Mądrala (5,790 p.)
jegor337 wystarczy ze podzielisz przez 0 i ci program wywali :D
komentarz 24 czerwca 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Pisałem o skype jegorowi xD
komentarz 24 czerwca 2015 przez pewolt Mądrala (5,790 p.)
aha a to sorry znowu XD
komentarz 26 czerwca 2015 przez jegor377 Stary wyjadacz (13,230 p.)
no to po co mi lib, skoro inne programy mogą kożystać z tej pamięci, to czemu ja nie mogę z ich bez libów? No *****, to się robi coraz bardziej pojebane... xD
komentarz 26 czerwca 2015 przez pewolt Mądrala (5,790 p.)
spokojnie spokojnie xDD

chodzi o to ze mozesz tylko zapisac albo wczytac pamiec poza programem jezeli inny program tej pamieci nie zajmuje a dzieki winapi mozesz edytowac pamiec innego programu

rozumiesz?
komentarz 26 czerwca 2015 przez jegor377 Stary wyjadacz (13,230 p.)
spoko, już rozumiem... xD Chodziło o to, że na stosie siedzą jeszcze dane z libek (zmienne itp...) i musiałem się po prostu do którejś odwołać zważywszy na to, że program był tak mały, to program nie wywalił, bo dalej było miejsce zapełnione. Jakby był duży program, to pojechało by, aż za dane libek.. xD a te śmieci to też już ogarniam, wszystko jest już obczajone i wszystko już wiem. :D Thx :)

Podobne pytania

0 głosów
0 odpowiedzi 1,186 wizyt
pytanie zadane 12 sierpnia 2021 w Hostingi, domeny, usługi przez olsześ Gaduła (3,080 p.)
0 głosów
3 odpowiedzi 504 wizyt
pytanie zadane 25 lutego 2016 w JavaScript przez MatiiTv Gaduła (3,790 p.)
0 głosów
2 odpowiedzi 154 wizyt

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...