Program to Change the Value Stored at the address in C


In this article, we will explore the program to change the value stored at an address in C, discussing its implementation, use cases, and best practices.

In the world of programming, the ability to change the value stored at a specific memory address is a fundamental concept.

Also Read: C Program to Find the Inverse of 2×2 Matrix

In the C programming language, developers often encounter situations where they need to modify the value stored at a particular address to achieve the desired outcome.

Whether you are a beginner learning C or an experienced developer seeking a refresher, this article will provide you with valuable insights and practical examples.

Understanding Pointers and Memory Addresses

Before delving into the program to change the value stored at an address in C, it is crucial to understand the concept of pointers and memory addresses.

In C, a pointer is a variable that holds the memory address of another variable.

Also Read: C Program to Copy the Contents of One File into Another File

By manipulating pointers, we can access and modify the value stored at a particular memory address.

This powerful feature allows for dynamic memory allocation, efficient data structures, and direct memory manipulation.

Also Read: Getchar and Putchar Function in C with Example

Program Implementation

To change the value stored at a specific address in C, we need to follow a few steps. Let’s walk through an example program that demonstrates this process:

#include <stdio.h>

int main() {
    int number = 42;
    int *address = &number;
    printf("Original value: %d\n", *address);
    *address = 100;
    printf("Modified value: %d\n", *address);
    return 0;

Let’s break down the code:

  1. We start by including the necessary header file stdio.h, which provides input/output operations in C.
  2. Inside the main() function, we declare an integer variable number and initialize it with the value 42.
  3. Next, we declare a pointer variable address and assign it the memory address of number using the address-of operator &.
  4. Using the printf() function, we display the original value stored at the address pointed to by address.
  5. To change the value, we dereference the pointer by prefixing it with the * operator, which allows us to access the value stored at the address.
  6. We assign the value 100 to the memory location pointed to by address.
  7. Finally, we display the modified value using the printf() function.

By running this program, you will observe that the value stored at the specified memory address has been successfully changed.

Also Read: Best 5 Programs on Fibonacci Series in C

Use Cases for Changing Values at Addresses

Now that we understand how to change the value stored at a specific address in C, let’s explore some practical use cases where this technique proves invaluable:

1. Modifying Data Structures

In C, data structures are often represented using pointers to dynamically allocated memory.

Also Read: Program To Reverse a String in C using Pointer

By changing the values stored at specific addresses, we can manipulate the data structure, update its contents, or rearrange its elements.

This flexibility allows us to create efficient and adaptable programs.

2. Interfacing with Hardware

When working with embedded systems or interacting with hardware devices, it is common to directly access memory addresses to control various peripherals.

By changing the values stored at these addresses, we can configure hardware settings, control inputs and outputs, and communicate with external devices.

Also Read: Find the Runner Up Score | Hackerrank Solution

3. Optimizing Performance

In certain situations, we may encounter performance bottlenecks that can be alleviated by tweaking values directly at memory addresses.

By carefully fine-tuning critical sections of code, we can improve efficiency, reduce memory usage, and enhance overall program performance.

Also Read: 25 Tricky Questions on Pointers in C: Explained and Answered


1. Can I change the value stored at any memory address in C?

No, changing the value stored at any memory address in C can have severe consequences, including program crashes or undefined behavior. It is crucial to ensure that you have the necessary permissions and a valid memory address before attempting to modify it.

2. How do I find the memory address of a variable in C?

To find the memory address of a variable in C, you can use the address-of operator &. For example, if you have an integer variable number, &number will give you its memory address.

3. Is it safe to change the value stored at memory addresses directly?

Changing the value stored at memory addresses directly should be done with caution. It is essential to understand the underlying memory layout, data types, and potential side effects of such modifications. Improper use can lead to program instability and hard-to-debug issues.

4. Are there any risks associated with modifying values at addresses?

Yes, modifying values at addresses carries risks. It can lead to memory corruption, unintended consequences, and security vulnerabilities if done incorrectly. Always ensure that you have a clear understanding of the implications before attempting such modifications.

5. Are there any alternatives to directly changing values at addresses?

In many cases, there are safer alternatives to directly changing values at addresses. Using higher-level abstractions, such as functions, data structures, and modular programming techniques, can often provide a more maintainable and robust solution. It is advisable to explore alternative approaches before resorting to direct memory manipulation.

6. Can I change the value stored at a memory address across different platforms and architectures?

The ability to change the value stored at a memory address may vary across platforms and architectures. It is essential to consider platform-specific considerations, such as alignment, endianness, and memory layouts, when attempting such modifications. Portability concerns should be taken into account when working with low-level memory operations.


In conclusion, the program to change the value stored at an address in C is a powerful technique that grants developers fine-grained control over their programs.

By understanding pointers, memory addresses, and the appropriate usage of direct memory manipulation, developers can create efficient, adaptable, and optimized solutions.

However, caution must be exercised when modifying values at addresses to avoid unintended consequences and potential vulnerabilities.

Always follow best practices, understand the underlying system, and consider higher-level alternatives when possible.

Remember, with great power comes great responsibility. By harnessing the ability to change values at addresses, you can unlock the full potential of the C programming language and create truly remarkable software.