Reputation: 3520
This is my code...
int* getA(int no)
{
int *a = new int[no];
return a;
}
void main()
{
int* a = getA(10);
delete []a;
}
When I delete the array a in main it crashes... what is the reason??
The error is "Windows has triggered a breakpoint in Final.exe. This may be due to a corruption of the heap, which indicates a bug in Final.exe or any of the DLLs it has loaded..........." But I am able to assign and access the elements of a in the main method but when I try to delete it is crashing....
Upvotes: 3
Views: 1590
Reputation: 393769
It should just work (the delete).
Possibly, the application crashes because of undefined behaviour, if your compiler accepted that code. Try the following, and run it under a debugger to verify that it crashes in the delete:
int* getA(int no)
{
int *a = new int[no];
return a;
}
int main()
{
int* a = getA(10);
delete []a;
return 0;
}
Upvotes: 1
Reputation: 81724
Nothing wrong with this code. Presumably either
Upvotes: 3