Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,847 questions

51,768 answers

573 users

How to free no need memory after allocation in C

1 Answer

0 votes
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char **argv) 
{ 
    char *s;
    
    s = (char *)malloc(sizeof(char) * 128);
    if(s == NULL)
    {
        puts("Allocation Error (malloc)");
        exit(1);
    }
    printf("Type a string up to 127 characters: ");
    fgets(s, 127, stdin);
    puts("Your string is: ");
    printf("%s", s);
    // Preserve the exact amount of memory that the user consume,
    // and free the rest. If user consume 10 chars we release 128 - (10 + 1) 
    if (realloc(s, sizeof(char) * (strlen(s) + 1)) == NULL)
    {
        puts("Allocation Error (realloc)");
        exit(1);
    }
    puts("Your string is after free no need memory: ");
    printf("%s", s);
    free(s);
    
    return 0;
}

/*
run:

Type a string up to 127 characters: have fun
Your string is:
have fun
Your string is after free no need memory:
have fun

*/

 



answered Jul 10, 2015 by avibootz

Related questions

1 answer 155 views
155 views asked Dec 27, 2020 by avibootz
1 answer 157 views
157 views asked Jul 26, 2017 by avibootz
1 answer 235 views
...