I have a problem where I have a pointer to an area in memory. I would like to use this pointer to create an integer array.
Essentially this is what I have, a pointer to a memory address of size 100*300*2 = 60000 bytes
unsigned char *ptr = 0x00000000; // fictional point in memory goes up to 0x0000EA60
What i would like to achieve is to examine this memory as an integer array of size 100*150 = 15000 ints = 60000 bytes, like this:
unsigned int array[ 100 ][ 150 ];
I'm assuming it involves some casting though i'm not sure exactly how to formulate it. Any help would be appreciated.
ptr? It could be dangerous to cast an arbitrary pointer tounsigned int *if the initial pointer was not aligned tosizeof int. If that happens, then at best your accesses to the memory will be slow due to reads across cache lines. At worst, it could cause a bus error and your program will halt (depending on your cpu architecture).