How does free() function work? We pass an only pointer on the first element of the array or string for free and this function "know" about the right border of allocated memory and freed it correctly. But why can't get this information from any C- standard functions?