>>And whats the difference in malloc and calloc?
calloc() calls malloc() then initializes the data to all 0s.
Please read answers given to you. And don't quote yourself...
A computer program is loaded into several parts of memory. There is the code (functions and the like), data (global variables and the like), the stack (local variables and the like), and the
heap.
The heap is just a big block of unused memory that your program is allowed to use. When you call
malloc() it takes a chunk of the heap and marks it as 'allocated', and returns a pointer to the part of the heap memory you can use. When you call
free() that piece of heap memory is unmarked and available for
malloc() to use again.
So for your example, you ask for
n *sizeof( float ) bytes of the heap. The pointer
p points to the first part of the heap you are allowed to use for your array of floats.