我觉得我对指针有很好的理解,但我想确保我理解正确.
基本上,我正在完成一个虚拟内存的计算机体系 struct 实验室,我们有两个指针.一个指针表示主存,另一个指针表示从mem[0]
开始的struts(frame_table
)array.
当我初始化程序时,我需要设置&frame_table[0] = &mem[0]
(我知道&
和[]
是多余的).
我的问题是,当我这样做时,是否需要投出mem
的地址?根据我的理解,我会说不.我的 idea 是,我把地址frame_table
设置为地址mem
,这根本不依赖于类型.下面我有我的例子.
此外,如果有任何类似的情况需要强制转换,或者强制转换会产生未定义的行为,请告诉我.
uint8_t *mem;
fte_t *frame_table;
//do i do this?
frame_table = mem;
//or this?
frame_table = (fte_t*) mem;