Breakpoint zwalnianie pamięci

0

Cześć

Męczę się z takowym problemem, że wywala mi breakpoint w momencie zwalniania pamięci z tablicy dynamicznej (detele [] tablica)i nie moge się go pozbyć. Kombinowałem z wielkością tablicy(warunek w petli for) ale nie idzie. Ma ktoś jakiś pomysł o co chodzi? Bo kombinuje z tymi wskaźnikami i ta tym problemie sie zatrzymałem.


#include <iostream>
#include <fstream>
#include <cstdlib>
#include <string>
 
using namespace std;
 
int main()
{
    fstream plik;
    plik.open("dane.txt", ios::in);
 
    if (!plik.good() == 1)
    {
        cout << "Nie znaleziono pliku!" << endl;
        exit(0);
    }
     
    string linia;
    int ile;
         
    cout << "Ile linijek z pliku chcesz odczytac: ";
    cin >> ile;
 
    int* tablica;
    tablica = new int[ile];
 
    for (int i = 0; i < ile; i++)
    {
        getline(plik, linia);
        *tablica = atoi(linia.c_str());
        cout << *tablica << endl;
        cout << (int)tablica << endl;
        if(i<4)tablica++;
        cout << (int)tablica << endl;
    }
     
    plik.close();
    delete[] tablica;
 
    return 0;
}


2
tablica++;

Zmieniasz wartość tablica, a delete[] oczekuje dokładnie tej samej, która została zwrócona przez new[]. Używaj notacji tablicowej tablica[i] zamiast tworzyć nieczytelny kod. Albo jeszcze lepiej, pisz w C++ i używaj std::vector. https://dsp.krzaq.cc/post/176/ucze-sie-cxx-kiedy-uzywac-new-i-delete/

1 użytkowników online, w tym zalogowanych: 0, gości: 1