我知道在c中,指针指向内存地址。在下面的代码中
char *cp;
someType *up; // Assuming that someType is a union of size 16 bytes
cp = sbrk(nu * sizeof(someType));
// Here is what confuses me
up = (someType *)cp;
根据此链接http://en.wikibooks.org/wiki/C_Programming/Pointers_and_arrays
如果cp指向的地址是0x1234,那么0x1234应该是新分配内存的开始吧?
因此,当“cp”被转换为指向 someType 的指针并分配给“up”时,它实际上说“up”是指向 0x1234 的指针,假设在 32 位系统中,每个内存地址占用 4 个字节,一个 someType 对象会使用4个内存地址来存储它的值,所以地址0x1234、0x1235、0x1236、0x1237共同存储了一个someType对象,这样对吗?
提前致谢。