• FEATURED

View more

View more

View more

### Image of the Day Submit

IOTD | Top Screenshots

### The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.

Sign up now

# Possible to cast a pointer to a certain type of array?

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

2 replies to this topic

### #1Vanukoff  Members

Posted 21 July 2001 - 08:06 AM

I have two structures that look like this:

struct Foo
{
// stuff
unsigned char data[ 256 ][ 16 ][ 16 ];
// other stuff
}

struct Bar
{
Foo* pfoo;
// other stuff
}


And I have a function which looks like:

void Funky(Bar* pbar)
{
// code
for(int i=0; i<200; i++)
{
for(int j=0; j<200; j++)
{
// code here uses pbar->pfoo->data[ a ][ b ][ c ];
}
}
}


I''d like to alias pbar->pfoo->data like this:

void Funky(Bar* pbar)
{
// code

unsigned char* alias = pbar->pfoo->data;

for(int i=0; i<200; i++)
{
for(int j=0; j<200; j++)
{
// code here now uses alias[ a ][ b ][ c ];
}
}
}


But I cannot do the above alias, because I lose dimensional information. Is there a way to cast ''alias'' so the compiler knows I want the dimensions 256*16*16 ... ?

### #2stevenmarky  Members

Posted 21 July 2001 - 09:52 AM

You don''t have dimentions.
Anyway-its shouldn''t be too hard to convert the three to a linear.
Or alternately create an array of pointers to the array, and use it in the same way as your normal array.

### #3Vanukoff  Members

Posted 21 July 2001 - 12:01 PM

Yeah, I could''ve used it as a linear, but didn''t want to clutter that line (the real code is more complex). I got it working by doing this:

unsigned char (*alias)[16][16] = pbar->pfoo->data;

Looks really weird, but it works.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.