0

Can anyone explain me syntax of malloc ( ), calloc( ), realloc( )? And how exactly it works.

I am not getting how malloc, calloc, realloc works. Please explain me in simple words as I am beginner !

24th Jun 2019, 6:23 AM
Vijay Sapkal
Vijay Sapkal - avatar
5 Réponses
+ 9
malloc() will just reserve a contiguous block of memory (in this case 200 bytes if sizeof(int) = 4). (int*) tells the compiler that you are going to use this memory block to store integers
24th Jun 2019, 2:57 PM
Anna
Anna - avatar
+ 4
If you want to allocate memory for 50 integers using malloc(), the syntax is int *nums = (int*)malloc(50*sizeof(int)); You know that it worked if the result is not a null pointer: if(nums == NULL) { // something went wrong } You can combine those to steps like this: int *nums; if((nums = (int*)malloc(50*sizeof(int))) != NULL) { // do something with the allocated memory } else { // failed to allocate memory } calloc() basically does the same as malloc() but it will set the allocated memory to 0, and the syntax is slightly different: int *nums = (int*)calloc(50, sizeof(int)); realloc() reallocates memory that was allocated with malloc or calloc before. If you're running out of memory and want to reallocate memory for 50 more integers, the syntax would be nums = realloc(nums, 100*sizeof(int)); To free the memory and avoid memory leaks, use free(nums); when you don't need the allocated memory any longer.
24th Jun 2019, 12:22 PM
Anna
Anna - avatar
+ 1
It is hard to me to get it ! Please explain me in simple words.*AsterisK*
24th Jun 2019, 8:17 AM
Vijay Sapkal
Vijay Sapkal - avatar
+ 1
Thanks Anna But what is meaning of this ptr = (int*) malloc (50*sizeof(int)); What is meaning of return type int* here. What are the behind the scenes!
24th Jun 2019, 1:58 PM
Vijay Sapkal
Vijay Sapkal - avatar