Dynamic Memory Allocation Program

Introduction

Dynamic memory allocation is a key feature in C++ that allows programmers to allocate memory at runtime. This capability is essential for managing memory efficiently, particularly when the size of the data structure is not known at compile time. This program demonstrates how to dynamically allocate memory for an integer variable, assign a value to it, print both the value and the memory address, and then deallocate the memory to prevent memory leaks. The dynamicMemoryAllocation function provides a clear example of these concepts in action.

Program Overview

The program consists of the following components:

  1. Function: dynamicMemoryAllocation - This function handles the dynamic allocation, assignment, output, and deallocation of memory for an integer variable.

  2. Function: main - The entry point of the program, which demonstrates how to use the dynamicMemoryAllocation function with an example integer variable.


Complete Code

#include <iostream>
using namespace std;


void dynamicMemoryAllocation(int value) {

    int* ptr = new int;

    *ptr = value;

    cout << "Value: " << *ptr << endl;
    cout << "Memory address: " << ptr << endl;

    delete ptr;
}

int main() {

    int intValue = 10;

    dynamicMemoryAllocation(intValue);

    return 0;
}

Function: dynamicMemoryAllocation

void dynamicMemoryAllocation(int value);

Purpose

The dynamicMemoryAllocation function allocates memory for an integer, assigns a specified value to it, and prints the value and the memory address before deallocating the memory.

Parameters

  • int value: The integer value to be stored in the dynamically allocated memory. This parameter is passed by value to the function.

Functionality

  1. Memory Allocation: Uses the new operator to allocate memory for an integer variable.

  2. Value Assignment: The function assigns the provided value to the newly allocated memory.

  3. Output: It prints the stored value and the memory address where the variable is allocated.

  4. Memory Deallocation: The function calls delete to free the allocated memory, ensuring that there are no memory leaks.

Example Usage

int intValue = 10;
dynamicMemoryAllocation(intValue);

In this example, the function is called with the value 10, which it will allocate dynamically and print.


Function: main

int main();

Purpose

The main function serves as the starting point of the program, demonstrating the functionality of dynamicMemoryAllocation.

Functionality

  1. Variable Declaration: Declares an integer variable intValue and initializes it with the value 10.

  2. Function Invocation: Calls the dynamicMemoryAllocation function with intValue to show how dynamic memory allocation works in practice.

Output

When executed, the program displays the following output (exact memory addresses will vary):

Value: 10
Memory address: 0x556030a0

This output shows the assigned value and the memory address allocated for that value.


Program Requirements

  • C++ Compiler: This program can be compiled with any standard C++ compiler that supports C++98 or later.

  • Libraries: The program requires the <iostream> library for input/output operations.


Conclusion

This program provides a fundamental understanding of dynamic memory allocation in C++. The dynamicMemoryAllocation function clearly illustrates the process of allocating memory at runtime, assigning values, and properly managing memory by deallocating it when no longer needed. This understanding is crucial for any C++ programmer, particularly when working with data structures whose sizes may change dynamically during program execution. The principles demonstrated can be easily adapted to other data types by creating similar functions for different types, thereby reinforcing the importance of memory management in C++ programming.