La finalul codului am afisat elementele vectorului inainte de a fi dealocata memoria si apoi am afisat din nou elementele vectorului dupa dealocarea memoriei,insa
imi este afisat ultimul element din vector desi dealocarea memoriei este facuta corect.
In mod normal codul ar fi trebuit sa afiseseze "garbage" pentru toate elementele vectorului, dar numai la ultimul element este afisat elementul introdus de la tastatura.
Intrebare: Cum se poate verifica daca dealocarea memoriei s-a facut corect ?
Code: Select all
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int n;
cout << "\n Dati dimensiunea vectorului : ";
cin >>n;
cout << "\n Introduceti elementele vectorului : "<<endl;
int *p = (int*)malloc(n * sizeof(int));
for (int i=0; i<n; i++)
{
cout << "\n A["<<i<<"] = ";
cin >> *(p+i);
}
cout << "\n Elementele vectorului sunt : ";
for (int i=0; i<n; i++)
cout <<" "<<*(p+i);
cout << endl;
free(p);
cout << endl;
for (int i=0; i<n; i++)
cout << " " << *(p+i);
cout << endl;
return 0;
}