Demo entry 6627773

install asdf

   

Submitted by thanh on Jun 29, 2017 at 20:26
Language: C. Code size: 1.6 kB.

#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
#include <string.h>
 
struct Person {
    char *name;
    int age;
    int height;
    int weight;
};
 
struct Person *Person_create(char *name, int age, int height, int weight)
{
    struct Person *who = malloc(sizeof(struct Person));
    assert(who != NULL);
 
    who->name = strdup(name);
    who->age = age;
    who->height = height;
    who->weight = weight;
 
    return who;
}
 
void Person_destroy(struct Person *who)
{
    assert(who != NULL);
 
    free(who->name);
    free(who);
}
 
void Person_print(struct Person *who)
{
    printf("Name: %s\n", who->name);
    printf("\tAge: %d\n", who->age);
    printf("\tHeight: %d\n", who->height);
    printf("\tWeight: %d\n", who->weight);
}
 
int main(int argc, char *argv[])
{
    // make two people structures
    struct Person *joe = Person_create(
            "Joe Alex", 32, 64, 140);
 
    struct Person *frank = Person_create(
            "Frank Blank", 20, 72, 180);
 
    // print them out and where they are in memory
    printf("Joe is at memory location %p:\n", joe);
    Person_print(joe);
 
    printf("Frank is at memory location %p:\n", frank);
    Person_print(frank);
 
    // make everyone age 20 years and print them again
    joe->age += 20;
    joe->height -= 2;
    joe->weight += 40;
    Person_print(joe);
 
    frank->age += 20;
    frank->weight += 20;
    Person_print(frank);
 
    // destroy them both so we clean up
    Person_destroy(joe);
    Person_destroy(frank);
 
    return 0;
}

This snippet took 0.00 seconds to highlight.

Back to the Entry List or Home.

Delete this entry (admin only).