Re: anything wrong with this code?
On Mar 7, 1:54 am, "Erik Wikstr=F6m" <eri...@student.chalmers.se> wrote:
On 7 Mar, 10:26, "hijkl" <s_mah...@yahoo.com> wrote:
On Mar 7, 1:09 am, "hijkl" <s_mah...@yahoo.com> wrote:
On Mar 7, 12:07 am, John Harrison <john_androni...@hotmail.com> wrote:
hijkl wrote:
ok i tried running this program..it will run fine only problem wi=
th
this code is memory leak..
there atleast 12 int pointers that needs to free at the end.
thanks
sanjay
Only two int pointer that need to be freed.
Your main misunderstanding seem to be that you think this code
int *array(int n){
return new int(n);
}
allocates n integers.
HI JOhn
i understand that this code allocates only one intger.
but
for( int i = 0; i < 10; i++ ) {
p[i] = 0;
}
this code will initialize next 9 integer to consecutive locations..
if you will debug then u will notice that..
let me know if you not agree with me.- Hide quoted text -
- Show quoted text -
John
try following code and you will understand how its working
...
for( int i = 0; i < 10; i++ ) {
p[i] = i;
}
printf("%d", [0]);
printf("%d", [1]);
printf("%d", [2]);
printf("%d", [3]);
.
.
.
printf("%d", [9]);
...
the output will be
0
1
2
.
.
.
9
so its cleary says that it allocated 10 integers.
It's just luck that keeps this code from crashing, or doing something
worse. What you have is undefined behaviour, to see that just consider
what would happen if the integer you allocated were located on the
last addressable memory location?
--
Erik Wikstr=F6m- Hide quoted text -
- Show quoted text -
yea make sense :)..