Imam problem sa dinamickom alokacijom memorije u C++.
Dakle sledeci kod ne zeli da se izvrsi:
int main()
{
int *p1=new int;
int x = 5;
p1 = &x;
delete []p1;
return 0;
}
Gotovo isti kod kada se koristi unutar klase radi, takodje kod radi kada pre brisanja p1 postavim na NULL (ali to nije ono sto zelim), kod se ponasa isto nezavisno od toga da li koristim delete ili delete[] operator.
Alociranje memorije sa new (jedan objekat, bez []) i brisanje sa delete[] uzrokuje undefined behavior, najčešće u vidu Runtime error-a. Koristi ili new/delete ili new[]/delete[].
Ne možeš sa delete (tj. delete[]) da obrišeš objekat koji nije kreiran pomoću new (tj. new[]), u ovom slučaju ti pokušavaš da obrišeš običnu lokalnu promenljivu.