Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Learn Pointers to Structs | Pointers and Structs
C Structs

bookPointers to Structs

The C programming language allows you to create pointers not only to regular data types but also to structures (since a structure is a custom data type).

Declaration and initialization of a pointer looks like this:

struct <name_of_struct>
{
    <field_of_struct>;
};

struct <name_of_struct>* <name_of_pointer>;

If <name_of_pointer> is a pointer to a structure,
then *(<name_of_pointer>) is the structure itself.

To access the fields of a structure through a pointer, you must use the -> operator.

Note
Note

-> is an analogue of the structure access operator .

main.c

main.c

copy
12345678910111213141516171819202122
#include <stdio.h> // structure declaration struct Point { int x; int y; }; int main() { // create a structure variable of Point type struct Point p1; p1.x = 10; p1.y = 20; // create a pointer to a structure of type Point and assign it the address of variable p1 struct Point* ptr = &p1; // Access structure members via pointer by `->` operator printf("Coordinates: (%d, %d)\n", ptr->x, ptr->y); return 0; }
Task

Swipe to start coding

  1. Declare structure Human which contains two fields name and age;
  2. Initialize the structure worker and fill the fields;
  3. Declare and initialize a pointer ptr to a worker;
  4. Display information about the worker.

Solution

Everything was clear?

How can we improve it?

Thanks for your feedback!

SectionΒ 2. ChapterΒ 2
single

single

Ask AI

expand

Ask AI

ChatGPT

Ask anything or try one of the suggested questions to begin our chat

Suggested prompts:

Can you give an example of using a pointer to a structure in C?

What is the difference between the '.' and '->' operators in C structures?

How do you allocate memory for a structure pointer in C?

close

Awesome!

Completion rate improved to 4.17

bookPointers to Structs

Swipe to show menu

The C programming language allows you to create pointers not only to regular data types but also to structures (since a structure is a custom data type).

Declaration and initialization of a pointer looks like this:

struct <name_of_struct>
{
    <field_of_struct>;
};

struct <name_of_struct>* <name_of_pointer>;

If <name_of_pointer> is a pointer to a structure,
then *(<name_of_pointer>) is the structure itself.

To access the fields of a structure through a pointer, you must use the -> operator.

Note
Note

-> is an analogue of the structure access operator .

main.c

main.c

copy
12345678910111213141516171819202122
#include <stdio.h> // structure declaration struct Point { int x; int y; }; int main() { // create a structure variable of Point type struct Point p1; p1.x = 10; p1.y = 20; // create a pointer to a structure of type Point and assign it the address of variable p1 struct Point* ptr = &p1; // Access structure members via pointer by `->` operator printf("Coordinates: (%d, %d)\n", ptr->x, ptr->y); return 0; }
Task

Swipe to start coding

  1. Declare structure Human which contains two fields name and age;
  2. Initialize the structure worker and fill the fields;
  3. Declare and initialize a pointer ptr to a worker;
  4. Display information about the worker.

Solution

Switch to desktopSwitch to desktop for real-world practiceContinue from where you are using one of the options below
Everything was clear?

How can we improve it?

Thanks for your feedback!

SectionΒ 2. ChapterΒ 2
single

single

some-alt