将void指针转换为整数数组

con*_*nor 20 c memory casting

我有一个问题,我有一个指向内存区域的指针.我想用这个指针来创建一个整数数组.

基本上这就是我所拥有的,指向大小为100*300*2 = 60000字节的内存地址的指针

unsigned char *ptr = 0x00000000; // fictional point in memory goes up to 0x0000EA60
Run Code Online (Sandbox Code Playgroud)

我想要实现的是将此内存检查为大小为100*150 = 15000 ints = 60000字节的整数数组,如下所示:

unsigned int array[ 100 ][ 150 ];
Run Code Online (Sandbox Code Playgroud)

我假设它涉及一些铸造虽然我不确定如何制定它.任何帮助,将不胜感激.

nha*_*tdh 18

你可以将指针强制转换为unsigned int (*)[150].然后,它可以被用来作为如果它是2D阵列("如同",由于行为sizeof是不同的).

unsigned int (*array)[150] = (unsigned int (*)[150]) ptr;
Run Code Online (Sandbox Code Playgroud)