调试的时候发现一个现象,类型不同的指针能指向同一内存单元吗?这打印出来的内存地址,是计算机物理内存的实际地址,还是说是程序为每种类型分别分配的一段内存?
如下,信息为同一段程序同一时刻打印:
(lldb) print result
(char **) $9 = 0x000000010010b5f0
(lldb) print result[2]
(char *) $12 = 0x000000010010b5f0 "p\x98\x10"
另外,还有一个问题,一个char** result指针在子函数realloc后指向地址改变,然后递归回退回去后有语句要用result时调用的还是之前没有realloc的result(因为上下文保留的是原result,所以子函数realloc后虽然地址改变但回退后父函数读不到?),这种情况怎么解决?