Join our newsletter for the latest updates.

C Program to Store Data in Structures Dynamically

In this example, you will learn to store the information entered by the user using dynamic memory allocation.

To understand this example, you should have the knowledge of the following C programming topics:

This program asks the user to store the value of noOfRecords and allocates the memory for the noOfRecords structure variables dynamically using the malloc() function.

Demonstrate the Dynamic Memory Allocation for Structure

#include <stdio.h>
#include <stdlib.h>
struct course {
    int marks;
    char subject[30];

int main() {
    struct course *ptr;
    int i, noOfRecords;
    printf("Enter the number of records: ");
    scanf("%d", &noOfRecords);

    // Memory allocation for noOfRecords structures
    ptr = (struct course *)malloc(noOfRecords * sizeof(struct course));
    for (i = 0; i < noOfRecords; ++i) {
        printf("Enter the name of the subject and marks respectively:\n");
        scanf("%s %d", (ptr + i)->subject, &(ptr + i)->marks);

    printf("Displaying Information:\n");
    for (i = 0; i < noOfRecords; ++i)
        printf("%s\t%d\n", (ptr + i)->subject, (ptr + i)->marks);

    return 0;


Enter the number of records: 2
Enter the name of the subject and marks respectively:
Enter the name of the subject and marks respectively:

Displaying Information:
Programming      22
Structure        33