Answers for "how does malloc works"

C
0

malloc

// if you initialize a pointer and want to use it like an array, 
// you have to claim the space you use, 
// that is what the memory-allocation-funtion (malloc) does;

// exaple for that: str(0) belongs to you, but str(1), str(2), ... do not
// if you do not use the malloc funtion; 
// you can access it, but it could be used by another programm;

#include <stdio.h>
#include <stdlib.h>

void func(void)
{
    char *str = malloc(sizeof(char) * 5); // sizeof --> char needs 
    // a specific space per value saved;
    // *5 --> 5 is the number of values in the array;

    char *str1 = malloc( 5 * sizeof *str1 );//      |
    char *str2 = malloc( sizeof(char[5]) );//       | other syntaxes

    if(str == NULL) { exit(1); } // malloc returns NULL 
    // if it could not allocate the memory;
    str[0] = 'H';
    *(str+1) = 'e';	// used like pointer
    str[2] = 'y';	// used like array
    *(str+3) = '!';
    str[4] = '\0';

    printf("%s\n", str);

    free(str); // frees the memory allocated to str;
    // if you free the memory too early and try to access str later
    // that is called a memory leak;
}

int main(void)
{
    func();
    return 0;
}

// shell: Hey!

// improved version of Thurger's
Posted by: Guest on February-08-2022
1

what is the use of malloc in c

In C, the library function malloc is used to allocate a block of memory on the heap. The program accesses this block of memory via a pointer that malloc returns. When the memory is no longer needed, the pointer is passed to free which deallocates the memory so that it can be used for other purposes.
Posted by: Guest on July-08-2020

Code answers related to "C"

Browse Popular Code Answers by Language