Acorn Arcade forums: Programming: Corrupt heap
|
Corrupt heap |
|
(13:57 28/4/2001) monkeyson (14:15 29/4/2001) Phlamethrower (10:23 30/4/2001)
|
|
Phlamethrower |
Message #4763, posted at 13:57, 28/4/2001 |
Unregistered user
|
When this program is compiled and run with GCC, it complains of a corrupt heap: #include <stdio.h> #include <stdlib.h> class foo { public: int blah; foo() {printf("foo at %d\n",(int) this);} ~foo() {printf("foo killed at %d\n",(int) this);} }; void main() { poo *t; t = new foo[10]; delete t; } Basically what I want to know is whether this is a bug in GCC, a limit of C++, or that I've done something wrong somewhere. |
|
[ Log in to reply ] |
|
monkeyson |
Message #4764, posted at 14:15, 29/4/2001, in reply to message #4763 |
Unregistered user
|
s/poo/foo I got a seg fault from Linux. Platform independence! You need to alter the delete so that you're deleting an array of foos, not an individual foo. foo *t; t = new foo(); delete t; foo *t; t = new foo[10]; delete [ ] t; |
|
[ Log in to reply ] |
|
Phlamethrower |
Message #4765, posted at 10:23, 30/4/2001, in reply to message #4764 |
Unregistered user
|
Ah, right. I think I tried delete t[], but not delete []t. |
|
[ Log in to reply ] |
|
|
Acorn Arcade forums: Programming: Corrupt heap |