Re: malloc ( )

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 31 August 2011 13:42, Avinash Sonawane wrote:
> Respected Sir,
> I am using gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4)
>
> I have one doubt regarding malloc () in gcc.

That's not a doubt, it's a question, and it's not a question about gcc
so is not really appropriate on this mailing list.


> When I tried to execute the program given below, it got executed.
>
> But since 256 = 1 0000 0000 (9 bits) , How malloc can store it at 'p'
> since I have allocate only 1 byte of memory (8 bits of memory) ?

The program is invalid, it is your responsibility to use malloc
correctly to avoid errors like this.

When you call malloc(1) it doesn't create a new piece of memory of 1
byte, isolated from the rest of your computer's memory. It simply
returns you a memory address, which points to a block of at least 1
byte.  When you write 4 bytes to that address you are overwriting 3
by7tes which you did not get from malloc. That could corrupt your heap
memory, or have other nasty effects, possibly eventually causing your
program to crash, or worse.


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux