// setting a pointer to a struct in C
// and set value by pointer
#include <stdio.h>
#include <stdbool.h>
// a struct called airplane
typedef struct
{
int fuel;
double speed;
bool landing_gear_down;
} airplane;
int main()
{
// make a pointer
airplane *Hummingbird; // *Hummingbird is now a pointer and it can be assigned to point at a struct of type airplane.
// this creates a struct of type airplane and assigns it a name of cessna and initializes it
airplane cessna = {50, 155, true};
Hummingbird = &cessna; // now assign the pointer to the struct address
// you can now call data types / variables via the pointer
(*Hummingbird).fuel; // this is a little messy
Hummingbird->speed; // this is clean and understandable
printf("
the cessna has %d liters of fuel", Hummingbird->fuel);
// set the value by pointer
Hummingbird->fuel = 15;
printf("
the cessna has %d liters of fuel", Hummingbird->fuel);
(*Hummingbird).landing_gear_down = false;
// or
Hummingbird->landing_gear_down = false;
if (Hummingbird->landing_gear_down == false)
{
printf("
landing gear is up");
}
else
{
printf("
landing gear is down");
}
};