pointer to an array

Posted on 2004-10-16
Medium Priority
Last Modified: 2010-04-17

Hello Experts,

I need to access the nth element of an array that I have only got a pointer pointing at.

// That is,  I have declared a pointer

            int[] *stackptr;

// then I point it at an array of integers

             stackptr = new int[50];

// now I need to access the nth element of the array


//  What is my syntax problem here?

Thank you,


Question by:travishaberman
LVL 21

Accepted Solution

MogalManic earned 2000 total points
ID: 12330935
This is the classic confustion in C between arrays and pointers.  In C, an array is the same as a pointer.
When you create the array of int:
 stackptr = new int[50];
you are also creating a pointer to an int that is 50 int's long.
 int *stackptr=new int[50];

The declaration
 int[] *stackptr;
is actually an array of int pointers.  Which is the same as
 int[][] stackptr;

To dereference a pointer use the * operator.  To dereference an array use a [] operator.

So to reference the Nth element in an array
  stackptr[n]   = the Nth element in stackptr array
  *(stackptr+5)  Add 5 int's to the address pointed by stackptr and get its value.
Whenever you add a pointer, the C compiler always knows what you are pointing to and adds the size of one unit (an int is 2 bytes so stackptr+1 is offset of 2 bytes in memory)

Your last example:
Dereference the value pointed by stackptr and index the Nth element in the array (assuming stackptr is an array of pointers)

LVL 11

Expert Comment

ID: 12331506

int *arrayptr;

arrayptr = new int[50];

//access the nth element

for(int i=0; i<50; i++)
  cout << *(arrayptr + i );

just imagine the array has had data assigned to it.

if my solution seems the same as mongol then, sorry I never read his

Expert Comment

ID: 12332182

Author Comment

ID: 12333456
I will try these tonight about 8 hours from now and get back to you with the points.  Thanks all,


Author Comment

ID: 12336193
That was perfect!!!  I think you just saved me about 10 hours of troubles..  Sorry I can only give you the 5 bills.

thanks again,


Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Today, the web development industry is booming, and many people consider it to be their vocation. The question you may be asking yourself is – how do I become a web developer?
If you are a mobile app developer and especially develop hybrid mobile apps then these 4 mistakes you must avoid for hybrid app development to be the more genuine app developer.
Starting up a Project

624 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question