Golgappa.net | Golgappa.org | BagIndia.net | BodyIndia.Com | CabIndia.net | CarsBikes.net | CarsBikes.org | CashIndia.net | ConsumerIndia.net | CookingIndia.net | DataIndia.net | DealIndia.net | EmailIndia.net | FirstTablet.com | FirstTourist.com | ForsaleIndia.net | IndiaBody.Com | IndiaCab.net | IndiaCash.net | IndiaModel.net | KidForum.net | OfficeIndia.net | PaysIndia.com | RestaurantIndia.net | RestaurantsIndia.net | SaleForum.net | SellForum.net | SoldIndia.com | StarIndia.net | TomatoCab.com | TomatoCabs.com | TownIndia.com
Interested to Buy Any Domain ? << Click Here >> for more details...


How does free() know how many bytes to free?

Answers were Sorted based on User's Feedback



How does free() know how many bytes to free?..

Answer / sekhar

free takes the pointer variable as argument. The intial
data at that location holds a value of number of bytes that
pointer is pointing to. Based on that information, it frees
the memory.

Is This Answer Correct ?    9 Yes 5 No

How does free() know how many bytes to free?..

Answer / vadivel t

Heap memory menager is a person, who is responsible for
dynamic memory allocation. He will maintains a internal
data structure(table) to update the information on free and
allocated memory pools. when memory is allocated using
malloc or calloc, the heap memory manager will update the
table(which tells, no of bytes allocated to a particular
pointer) and returns the base address to the application.
when application calls free() with the pointer to be freed
as a argument, free will look into the table which holds no
of bytes allocated for that pointer. And it will free those
many bytes from the base address. Again the freed memory
shall be added to a free memory pool so that other fellows
who needs memory can utilise it.

Is This Answer Correct ?    6 Yes 2 No

How does free() know how many bytes to free?..

Answer / guest

The malloc/free implementation remembers the size of each
block allocated and returned.

Is This Answer Correct ?    6 Yes 4 No

How does free() know how many bytes to free?..

Answer / vrushali

Whenever we call malloc() for allocating memory. The value
of the starting address is stored in a virtual memory tables.
So whenever free() is called then using the starting memory
location free () will have an entry of the bytes allocated
and to be freed. It can do it using this entry then entry is
deleted also.
This is pure OS concept.

Please reply here if you are not able to understand my answer.

Is This Answer Correct ?    4 Yes 3 No

How does free() know how many bytes to free?..

Answer / sourisengupta

free(ptr);

free takes the pointer variable as argument. The intial
data at that location holds a value of number of bytes that
pointer is pointing to. According to the information, it
frees
the memory.

Is This Answer Correct ?    4 Yes 4 No

How does free() know how many bytes to free?..

Answer / rpjanaka

Then, is there a way to get out the number of bytes that
heap manager going to free, when I call free() function.

Is This Answer Correct ?    1 Yes 1 No

How does free() know how many bytes to free?..

Answer / pearl

This is possible if your OS providing the system calls to access those memory manager data structure.

Is This Answer Correct ?    0 Yes 0 No

How does free() know how many bytes to free?..

Answer / suchita

frees a block allocated with malloc()

Is This Answer Correct ?    2 Yes 5 No

Post New Answer

More C Interview Questions

what is software?

7 Answers   Wipro,


The variables are int sum=10,SuM=20; these are same or different?

3 Answers  


a parameter passed between a calling program and a called program a) variable b) constant c) argument d) all of the above

0 Answers  


How does normalization of huge pointer works?

0 Answers  


what does keyword ‘extern’ mean in a function declaration?

1 Answers   Emerson,


dynamically allocate memory for linear array of n integers,store some elements in it and find some of them

1 Answers  


Given two strings S1 and S2. Delete from S2 all those characters which occur in S1 also and finally create a clean S2 with the relevant characters deleted.

0 Answers  


Is c easy to learn?

0 Answers  


What are derived data types in c?

0 Answers  


main() { int age; float ht; printf("Enter height and age"); scanf("%d%d",&height,&age); if((age<=20)&&(ht>=5)) {printf("She loves you");} else {printf("She loves you");} }

2 Answers  


Did c have any year 2000 problems?

0 Answers  


Explain what are its uses in c programming?

0 Answers  


Categories