Understanding Pointers in C Programming

avatar
(Edited)

image.png

Why are three words "senior, same, and nuns" important to programmers?

Can you guess?

No, it's not a mental acuity test for unwell presidents.

It's a kind of pointer. Don’t worry if it doesn’t make sense yet. All will be revealed.

The Joy and Frustration of Pointers in C

Pointers are one of the most fundamental yet often misunderstood concepts that frustrate people new to C programming. I was there myself for the longest time - I did everything I could to avoid them.

The problem is they are vital in some cases, and in others, such as retro computer programming, really really useful.

Getting your head around what pointers are and how they work can significantly improve your understanding of memory management and how programs operate under the hood.

Let me show you why pointers matter and how they can be used.

So What Is a Pointer?

A pointer is a special kind of variable that stores a memory address rather than a direct value. That means, instead of holding data like a number or a string, a pointer holds the location of where that data is stored in memory.

Think of a pointer as being a box. On the outside it says "Screen RAM," but instead of being full of screen characters, inside there’s a slip of paper with GPS coordinates typed neatly on it.

Do the three words make sense now?

senior.same.nuns is the what3words location for Bletchley Park, the historical home of British codebreaking.

A pointer doesn’t reference the thing itself, but tells you where to find the thing.

Why Are Pointers Important?

Understanding pointers helps you to:

  • Manage memory efficiently (C isn’t as cozy as other languages, you’re responsible for allocation and cleanup)
  • Pass large data structures around without duplication and waste (vital on retro machines with less than 64KB RAM, total!)
  • Build complex data structures such as linked lists and trees
  • Interact directly with hardware or system resources (a key reason people drop to assembler, and essential for retro performance)

Without pointers, you’d be limited to working with data only within the scope of what you write, rather than being able to directly address your hardware.

A Simple C Example

int lifemeaning = 42;
int *p;        // p is a pointer to an int
p = &lifemeaning; 
// p now holds the address of the meaning of life, the universe, and everything
  • lifemeaning contains 42.
  • p is a variable holding the address of lifemeaning.
  • The & operator asks for the address of lifemeaning, which is then stored in p.

Imagine your program’s memory as a big city map:

  • lifemeaning lives at street address 0xFF.
  • p holds that address (0xFF).

Printing p shows you the memory address it points to, like seeing the street number of your data’s house.

Getting Hexed

Memory addresses are often displayed as hexadecimal numbers (like 0xFF) because hex is compact and maps neatly onto how bytes are grouped in memory.

In little endian systems, multi-byte values are stored with the least significant byte first. So 0x0000002A (42) would be stored in memory as 2A 00 00 00.

How This Helps

  1. Passing Large Data Without Copying
    Instead of wastefully copying large chunks of data around, passing a pointer lets functions operate directly on the original data.

  2. Allocating Memory Dynamically
    Using functions like malloc, calloc, and free, programs can allocate memory during runtime, with pointers referencing these blocks.

  3. Building Complex Data Structures
    Linked lists, trees, and graphs rely on pointers to connect nodes dynamically.

    For example, a list node might contain:

    • Address of previous item
    • Current item ID
    • Current item value
    • Address of next item

    Unlike fixed-length arrays, this allows flexible, navigable structures.

C64 Screen and Colour RAM

On the Commodore 64, the screen display is just a block of memory starting at $0400 (1024 decimal). Each byte represents a character cell. The colours live separately, starting at $D800 (55296 decimal).

With cc65, we can use pointers to write directly into those areas:

image.png

#include <stdint.h>

#define SCREEN  ((uint8_t*)0x0400)
#define COLOR   ((uint8_t*)0xD800)

void main(void) {
    const char *msg = "HELLO POINTERS!";
    uint8_t i = 0;

    while (msg[i] != 0) {
        SCREEN[i] = msg[i];   // write character to screen RAM
        COLOR[i]  = 1;        // set text colour (1 = white)
        i++;
    }
}

What's happening:

  • SCREEN and COLOR are pointers to the fixed addresses of the screen and colour memory.
  • Writing to SCREEN[i] draws a character at position i.
  • Writing to COLOR[i] sets its colour.

This shows how with pointers you can talk directly to the hardware, it's either much slower or even impossible without them.

Wait - That's An Array!

Good catch! Arrays and pointers aren’t identical in C, but they’re very closely related.

When you declare an array like this:

int numbers[3] = {10, 20, 30};

.. numbers represents the address of the first element in the array. You can then use a pointer to walk through the array:

int *p = numbers;   // points to numbers[0]
printf("%d\n", *p); // prints 10

p++;                // increment p, ie. move to the next element
printf("%d\n", *p); // prints 20

The array name (numbers) behaves like a constant pointer to its first element. In fact, numbers[i] is equivalent to *(numbers + i)

Pointer arithmetic is very useful, it lets you move through arrays as if you’re stepping through memory.

This is why strings in C are just arrays of characters, with a pointer to the first one, and very often with a specific value or character to mark the end of the string.

On retro systems like the Commodore 64, this is especially handy because screen RAM or sprite data can be treated like arrays of bytes that you then walk through using pointers.

Danger Danger!

Working directly with memory is powerful but risky. The most common pitfalls include:

  • Dangling pointers: using freed memory
  • Memory leaks: forgetting to free allocated memory
  • Buffer overflows: writing past allocated space

Always initialise your pointers and carefully manage memory to avoid nasty bugs, crashes, or security issues.



0
0
0.000
16 comments
avatar

Thanks for your contribution to the STEMsocial community. Feel free to join us on discord to get to know the rest of us!

Please consider delegating to the @stemsocial account (85% of the curation rewards are returned).

Consider setting @stemsocial as a beneficiary of this post's rewards if you would like to support the community and contribute to its mission of promoting science and education on Hive. 
 

0
0
0.000
avatar
(Edited)

Still no one cares 😂😂😂😂

Over rewarded trash 🗑️

0
0
0.000
avatar

Keep crying

0
0
0.000
avatar

No one's crying 😂 just laughing at how silly you really are 😂😂😂😂😂😂

No one is scared of downvotes and no one is scared of you 😂😂😂😂😂

0
0
0.000
avatar

💯 Original Content and comments downvoted for no reason Please read and view

@steevc please tell your friends to stop downvoting my original content please 🙏🏾

Blocktrades Aka @themarkymark Aka @buildawhale @punkteam @gogreenbuddy @letsusbuyhive please stop downvoting my original content I'm not going to reply to your abusive comments as that is what you enjoy doing seems like you have a lot of free time

Please explain why you keep downvoting my original content 🤔 if you aren't blocktrades then why doesn't do something 😂 also why would you be sending all that Hive with buildawhale to alpha an account that is blocktrades wife 😂😂😂

@crimsonclad please do your job 🙏🏾

https://hive.blog/hive-135178/@crimsonclad/re-kgakakillerg-sxllhv

https://hive.blog/hive-148441/@hivewatchers/svftu9

https://hive.blog/hive-148441/@hivewatchers/svdjjz

https://hive.blog/hive-176853/@steevc/re-kgakakillerg-syyy4x

https://hive.blog/dev/@howo/re-kgakakillerg-szhax7

https://hive.blog/hive/@steevc/follow-friday-respect

https://hive.blog/hive-127022/@shmoogleosukami/re-kgakakillerg-t0hcxc

It's unbelievable that they downvoted this Goodbye Auntie R.I.P 🙏🏾

Comments being downvoted by blocktrades https://hive.blog/hive-170744/@kgakakillerg/t0ns3b

https://hive.blog/hive-127466/@steevc/re-blocktrades-t0kint

https://hive.blog/hive-127466/@blocktrades/t0lq41

https://hive.blog/hive/@ureka.stats/the-untrending-report-hive-downvote-analysis-2025-06-29-20250629143829

https://hive.blog/hive-127466/@kgakakillerg/t0m1vn

https://hive.blog/hive-108278/@kgakakillerg/t0rfo8

https://hive.blog/hive-127466/@kgakakillerg/t0vcl7

Stop farming Hive https://hive.blog/burnpost/@buildawhale/re-1756307402814502169-20250827t151240z

😂😂😂😂😂

0
0
0.000
avatar

image.png

Make your mind up

And stop spamming my comment area with your whining

0
0
0.000
avatar

No one's crying just laughing at how silly you are and your friend blocktrades who is the owner of buildawhale and themarkymark and usainvote and more accounts RE: Improving Hive’s semantic search performance

No one is scared of downvotes you and your friends can keep downvoting people away 😂

0
0
0.000
avatar

I would suggest to ignore him. If he gets more downvotes then he just complains to me. That has gone on for ages. Not that I can tell you or others what to do.

0
0
0.000
avatar

He is pathetic but highlights that we need basic moderation tools even if they will make people like him cry even more that they do not have automatic access to an audience

0
0
0.000
avatar

I don't know why he thinks I have some special influence. I have met blocktrades at Fests, but he's no more my special friend than you are. I can't tell other adults what to do on Hive. They are free to react to what they see as abuse or attacks. I just want to get on with supporting and engaging with content I like. Hive is imperfect, but we have freedom here. People are free to be idiots and we need tools to deal with what we see.

0
0
0.000
avatar

So sad >💯 Original Content and comments downvoted for no reason Please read and view

@steevc please tell your friends to stop downvoting my original content please 🙏🏾

Blocktrades Aka @themarkymark Aka @buildawhale @punkteam @usainvote @gogreenbuddy @letsusbuyhive please stop downvoting my original content I'm not going to reply to your abusive comments as that is what you enjoy doing seems like you have a lot of free time

Please explain why you keep downvoting my original content 🤔 if you aren't blocktrades then why doesn't do something 😂 also why would you be sending all that Hive with buildawhale to alpha an account that is blocktrades wife 😂😂😂

@crimsonclad please do your job 🙏🏾

https://hive.blog/hive-135178/@crimsonclad/re-kgakakillerg-sxllhv

https://hive.blog/hive-148441/@hivewatchers/svftu9

https://hive.blog/hive-148441/@hivewatchers/svdjjz

https://hive.blog/hive-176853/@steevc/re-kgakakillerg-syyy4x

https://hive.blog/dev/@howo/re-kgakakillerg-szhax7

https://hive.blog/hive/@steevc/follow-friday-respect

https://hive.blog/hive-127022/@shmoogleosukami/re-kgakakillerg-t0hcxc

It's unbelievable that they downvoted this Goodbye Auntie R.I.P 🙏🏾

Comments being downvoted by blocktrades https://hive.blog/hive-170744/@kgakakillerg/t0ns3b

https://hive.blog/hive-127466/@steevc/re-blocktrades-t0kint

https://hive.blog/hive-127466/@blocktrades/t0lq41

https://hive.blog/hive/@ureka.stats/the-untrending-report-hive-downvote-analysis-2025-06-29-20250629143829

https://hive.blog/hive-127466/@kgakakillerg/t0m1vn

https://hive.blog/hive-108278/@kgakakillerg/t0rfo8

https://hive.blog/hive-127466/@kgakakillerg/t0vcl7

Stop farming Hive https://hive.blog/burnpost/@buildawhale/re-1756307402814502169-20250827t151240z

😂😂😂😂😂

📊 The Untrending Report - Hive Downvote Analysis - 2025-09-07

RE: Understanding Pointers in C Programming

Please Peakd, allow me to completely block spammers (Would you ever vote for this?) thanks for exposing yourself more @makerhacks

0
0
0.000
avatar

So sad

💯 Original Content and comments downvoted for no reason Please read and view

@steevc please tell your friends to stop downvoting my original content please 🙏🏾

Blocktrades Aka @themarkymark Aka @buildawhale @punkteam @usainvote @gogreenbuddy @letsusbuyhive please stop downvoting my original content I'm not going to reply to your abusive comments as that is what you enjoy doing seems like you have a lot of free time

Please explain why you keep downvoting my original content 🤔 if you aren't blocktrades then why doesn't do something 😂 also why would you be sending all that Hive with buildawhale to alpha an account that is blocktrades wife 😂😂😂

@crimsonclad please do your job 🙏🏾

https://hive.blog/hive-135178/@crimsonclad/re-kgakakillerg-sxllhv

https://hive.blog/hive-148441/@hivewatchers/svftu9

https://hive.blog/hive-148441/@hivewatchers/svdjjz

https://hive.blog/hive-176853/@steevc/re-kgakakillerg-syyy4x

https://hive.blog/dev/@howo/re-kgakakillerg-szhax7

https://hive.blog/hive/@steevc/follow-friday-respect

https://hive.blog/hive-127022/@shmoogleosukami/re-kgakakillerg-t0hcxc

It's unbelievable that they downvoted this Goodbye Auntie R.I.P 🙏🏾

Comments being downvoted by blocktrades https://hive.blog/hive-170744/@kgakakillerg/t0ns3b

https://hive.blog/hive-127466/@steevc/re-blocktrades-t0kint

https://hive.blog/hive-127466/@blocktrades/t0lq41

https://hive.blog/hive/@ureka.stats/the-untrending-report-hive-downvote-analysis-2025-06-29-20250629143829

https://hive.blog/hive-127466/@kgakakillerg/t0m1vn

https://hive.blog/hive-108278/@kgakakillerg/t0rfo8

https://hive.blog/hive-127466/@kgakakillerg/t0vcl7

Stop farming Hive https://hive.blog/burnpost/@buildawhale/re-1756307402814502169-20250827t151240z

😂😂😂😂😂

📊 The Untrending Report - Hive Downvote Analysis - 2025-09-07

RE: Understanding Pointers in C Programming

Please Peakd, allow me to completely block spammers (Would you ever vote for this?) thanks for exposing yourself more @makerhacks

0
0
0.000
avatar

💯 Original Content and comments downvoted for no reason Please read and view

@steevc please tell your friends to stop downvoting my original content please 🙏🏾

Blocktrades Aka @themarkymark Aka @buildawhale @punkteam @gogreenbuddy @letsusbuyhive please stop downvoting my original content I'm not going to reply to your abusive comments as that is what you enjoy doing seems like you have a lot of free time

Please explain why you keep downvoting my original content 🤔 if you aren't blocktrades then why doesn't do something 😂 also why would you be sending all that Hive with buildawhale to alpha an account that is blocktrades wife 😂😂😂

@crimsonclad please do your job 🙏🏾

https://hive.blog/hive-135178/@crimsonclad/re-kgakakillerg-sxllhv

https://hive.blog/hive-148441/@hivewatchers/svftu9

https://hive.blog/hive-148441/@hivewatchers/svdjjz

https://hive.blog/hive-176853/@steevc/re-kgakakillerg-syyy4x

https://hive.blog/dev/@howo/re-kgakakillerg-szhax7

https://hive.blog/hive/@steevc/follow-friday-respect

https://hive.blog/hive-127022/@shmoogleosukami/re-kgakakillerg-t0hcxc

It's unbelievable that they downvoted this Goodbye Auntie R.I.P 🙏🏾

Comments being downvoted by blocktrades https://hive.blog/hive-170744/@kgakakillerg/t0ns3b

https://hive.blog/hive-127466/@steevc/re-blocktrades-t0kint

https://hive.blog/hive-127466/@blocktrades/t0lq41

https://hive.blog/hive/@ureka.stats/the-untrending-report-hive-downvote-analysis-2025-06-29-20250629143829

https://hive.blog/hive-127466/@kgakakillerg/t0m1vn

https://hive.blog/hive-108278/@kgakakillerg/t0rfo8

https://hive.blog/hive-127466/@kgakakillerg/t0vcl7

Stop farming Hive https://hive.blog/burnpost/@buildawhale/re-1756307402814502169-20250827t151240z

😂😂😂😂😂

📊 The Untrending Report - Hive Downvote Analysis - 2025-09-07

RE: Understanding Pointers in C Programming

0
0
0.000
avatar

💯 Original Content and comments downvoted for no reason Please read and view

@steevc please tell your friends to stop downvoting my original content please 🙏🏾

Blocktrades Aka @themarkymark Aka @buildawhale @punkteam @gogreenbuddy @letsusbuyhive please stop downvoting my original content I'm not going to reply to your abusive comments as that is what you enjoy doing seems like you have a lot of free time

Please explain why you keep downvoting my original content 🤔 if you aren't blocktrades then why doesn't do something 😂 also why would you be sending all that Hive with buildawhale to alpha an account that is blocktrades wife 😂😂😂

@crimsonclad please do your job 🙏🏾

https://hive.blog/hive-135178/@crimsonclad/re-kgakakillerg-sxllhv

https://hive.blog/hive-148441/@hivewatchers/svftu9

https://hive.blog/hive-148441/@hivewatchers/svdjjz

https://hive.blog/hive-176853/@steevc/re-kgakakillerg-syyy4x

https://hive.blog/dev/@howo/re-kgakakillerg-szhax7

https://hive.blog/hive/@steevc/follow-friday-respect

https://hive.blog/hive-127022/@shmoogleosukami/re-kgakakillerg-t0hcxc

It's unbelievable that they downvoted this Goodbye Auntie R.I.P 🙏🏾

Comments being downvoted by blocktrades https://hive.blog/hive-170744/@kgakakillerg/t0ns3b

https://hive.blog/hive-127466/@steevc/re-blocktrades-t0kint

https://hive.blog/hive-127466/@blocktrades/t0lq41

https://hive.blog/hive/@ureka.stats/the-untrending-report-hive-downvote-analysis-2025-06-29-20250629143829

https://hive.blog/hive-127466/@kgakakillerg/t0m1vn

https://hive.blog/hive-108278/@kgakakillerg/t0rfo8

https://hive.blog/hive-127466/@kgakakillerg/t0vcl7

Stop farming Hive https://hive.blog/burnpost/@buildawhale/re-1756307402814502169-20250827t151240z

😂😂😂😂😂

0
0
0.000
avatar

Just look at who's liking your post 😂😂😂😂😂😂😂😂 you people expose yourself 😂😂😂

💯 Original Content and comments downvoted for no reason Please read and view

@steevc please tell your friends to stop downvoting my original content please 🙏🏾

Blocktrades Aka @themarkymark Aka @buildawhale @punkteam @gogreenbuddy @letsusbuyhive please stop downvoting my original content I'm not going to reply to your abusive comments as that is what you enjoy doing seems like you have a lot of free time

Please explain why you keep downvoting my original content 🤔 if you aren't blocktrades then why doesn't do something 😂 also why would you be sending all that Hive with buildawhale to alpha an account that is blocktrades wife 😂😂😂

@crimsonclad please do your job 🙏🏾

https://hive.blog/hive-135178/@crimsonclad/re-kgakakillerg-sxllhv

https://hive.blog/hive-148441/@hivewatchers/svftu9

https://hive.blog/hive-148441/@hivewatchers/svdjjz

https://hive.blog/hive-176853/@steevc/re-kgakakillerg-syyy4x

https://hive.blog/dev/@howo/re-kgakakillerg-szhax7

https://hive.blog/hive/@steevc/follow-friday-respect

https://hive.blog/hive-127022/@shmoogleosukami/re-kgakakillerg-t0hcxc

It's unbelievable that they downvoted this Goodbye Auntie R.I.P 🙏🏾

Comments being downvoted by blocktrades https://hive.blog/hive-170744/@kgakakillerg/t0ns3b

https://hive.blog/hive-127466/@steevc/re-blocktrades-t0kint

https://hive.blog/hive-127466/@blocktrades/t0lq41

https://hive.blog/hive/@ureka.stats/the-untrending-report-hive-downvote-analysis-2025-06-29-20250629143829

https://hive.blog/hive-127466/@kgakakillerg/t0m1vn

https://hive.blog/hive-108278/@kgakakillerg/t0rfo8

https://hive.blog/hive-127466/@kgakakillerg/t0vcl7

Stop farming Hive https://hive.blog/burnpost/@buildawhale/re-1756307402814502169-20250827t151240z

😂😂😂😂😂

0
0
0.000