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

Naruszenie pamięci w programie

Object Storage Arubacloud
0 głosów
320 wizyt
pytanie zadane 15 listopada 2020 w C i C++ przez kaminie318 Bywalec (2,070 p.)

Program który stworzyłem uzależniony jest od wybranej flagi. Wie ktoś dlaczego wyskakuje tu błąd naruszenia pamięci? 

if (strcmp(argumenty[1], "-en") == 0)
{
        // Iterowanie po kazdym z przelacznikow
        for (int i = 2; i < ileArgumentow; i++)
        {}
}
else if (strcmp(argumenty[1],"-de")==0)
{
        // Iterowanie po kazdym z przelacznikow 
        for (int i = 2; i < ileArgumentow; i++) {}
}
//...dalej reszta flag

Próbowałem jakoś to oszukać i zrobić if (argumenty[1]=="-en") ale wtedy program w ogóle nie wchodzi do ifa. 

komentarz 2 grudnia 2020 przez j23 Mędrzec (194,920 p.)
Pokaż, jak wczytujesz dane z pliku do wektora.
komentarz 2 grudnia 2020 przez kaminie318 Bywalec (2,070 p.)

Do wczytywania danych z pliku i zapisuje je do wektora(bufora) odpowiada ta funkcja:

vector<char> wczytajDaneDoBufora(string plikWejsciowy)
{
	vector <char> buforPomocniczy;
	fstream plik;
	plik.open(plikWejsciowy, ios::in | ios::out);
	char znak;
    for (char c; f.get(c);) v.push_back(c);
	cout << endl;
	plik.close();
	return buforPomocniczy;
}

Natomiast plik wyjściowy otwierany jest już w funkcji szukajKlucza:

plikWyj.open(plikWyjsciowy, ios::in | ios::out);
getline(plikWyj, liniaWyjsciowa);
plikWyj.close();

Wszystko wygląda w miarę logicznie.

komentarz 2 grudnia 2020 przez j23 Mędrzec (194,920 p.)

Serio?! Przecież ten kod nawet się nie skompiluje. W linii 7 czytasz ze strumienia f do wektora v, choć nigdzie (w funkcji przynajmniej) nie ma definicji tych obiektów. O co tu chodzi?

Ogarnij ten bajzel i wtedy wrzucaj kod na forum...

komentarz 2 grudnia 2020 przez kaminie318 Bywalec (2,070 p.)

Poprawka, oczywiście to była głupota, kombinowałem ostatnio w kodzie i przez nieuwagę musiałem coś przestawić....

vector<char> wczytajDaneDoBufora(string plikWejsciowy)
{
	vector <char> buforPomocniczy;
	fstream plik;
	plik.open(plikWejsciowy, ios::in | ios::out);
	//char znak;
	for (char c; plik.get(c);) buforPomocniczy.push_back(c);
	cout << endl;
	plik.close();
	return buforPomocniczy;
}

 

komentarz 2 grudnia 2020 przez j23 Mędrzec (194,920 p.)
edycja 2 grudnia 2020 przez j23

Zastanawia mnie, dlaczego plik wejściowy czytasz w całości, a z pliku wyjściowego tylko jedną linię.

Wydaje mi się, że powinieneś pomijać nie tylko spację, ale wszystko, co nie jest literą.

if ((c < 'A' || c > 'Z') && (c < 'a' || c > 'z')) continue;

ponieważ wszystko co nie jest literą przesuwa - podobnie jak spacja - indeks klucza przy szyfrowaniu (w sumie to dobrze, trudniej taki kod złamać).

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 166 wizyt
pytanie zadane 23 stycznia 2023 w C i C++ przez sergion Nowicjusz (150 p.)
0 głosów
1 odpowiedź 297 wizyt
pytanie zadane 25 marca 2020 w C i C++ przez plebaniahobbitanow Początkujący (470 p.)
0 głosów
1 odpowiedź 153 wizyt
pytanie zadane 11 stycznia 2020 w C i C++ przez themando Nowicjusz (120 p.)

92,626 zapytań

141,486 odpowiedzi

319,844 komentarzy

62,009 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...